mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	Merge branch 'akpm' (patches from Andrew)
Merge yet more updates from Andrew Morton:
 - a few MM remainders
 - misc things
 - autofs updates
 - signals
 - affs updates
 - ipc
 - nilfs2
 - spelling.txt updates
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (78 commits)
  mm, x86: fix HIGHMEM64 && PARAVIRT build config for native_pud_clear()
  mm: add arch-independent testcases for RODATA
  hfs: atomically read inode size
  mm: clarify mm_struct.mm_{users,count} documentation
  mm: use mmget_not_zero() helper
  mm: add new mmget() helper
  mm: add new mmgrab() helper
  checkpatch: warn when formats use %Z and suggest %z
  lib/vsprintf.c: remove %Z support
  scripts/spelling.txt: add some typo-words
  scripts/spelling.txt: add "followings" pattern and fix typo instances
  scripts/spelling.txt: add "therfore" pattern and fix typo instances
  scripts/spelling.txt: add "overwriten" pattern and fix typo instances
  scripts/spelling.txt: add "overwritting" pattern and fix typo instances
  scripts/spelling.txt: add "deintialize(d)" pattern and fix typo instances
  scripts/spelling.txt: add "disassocation" pattern and fix typo instances
  scripts/spelling.txt: add "omited" pattern and fix typo instances
  scripts/spelling.txt: add "explictely" pattern and fix typo instances
  scripts/spelling.txt: add "applys" pattern and fix typo instances
  scripts/spelling.txt: add "configuartion" pattern and fix typo instances
  ...
			
			
This commit is contained in:
		
						commit
						86292b33d4
					
				
					 423 changed files with 1287 additions and 945 deletions
				
			
		| 
						 | 
				
			
			@ -1020,7 +1020,7 @@ and other resources, etc.
 | 
			
		|||
	</itemizedlist>
 | 
			
		||||
 | 
			
		||||
	<para>
 | 
			
		||||
	Of errors detected as above, the followings are not ATA/ATAPI
 | 
			
		||||
	Of errors detected as above, the following are not ATA/ATAPI
 | 
			
		||||
	device errors but ATA bus errors and should be handled
 | 
			
		||||
	according to <xref linkend="excatATAbusErr"/>.
 | 
			
		||||
	</para>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,7 +57,7 @@ Note: To get the ACPI debug object output (Store (AAAA, Debug)),
 | 
			
		|||
3. undo your changes
 | 
			
		||||
   The "undo" operation is not supported for a new inserted method
 | 
			
		||||
   right now, i.e. we can not remove a method currently.
 | 
			
		||||
   For an overrided method, in order to undo your changes, please
 | 
			
		||||
   For an overridden method, in order to undo your changes, please
 | 
			
		||||
   save a copy of the method original ASL code in step c) section 1,
 | 
			
		||||
   and redo step c) ~ g) to override the method with the original one.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -152,7 +152,7 @@ tracing facility.
 | 
			
		|||
	Users can enable/disable this debug tracing feature by executing
 | 
			
		||||
	the following command:
 | 
			
		||||
	    # echo string > /sys/module/acpi/parameters/trace_state
 | 
			
		||||
	Where "string" should be one of the followings:
 | 
			
		||||
	Where "string" should be one of the following:
 | 
			
		||||
	"disable"
 | 
			
		||||
	    Disable the method tracing feature.
 | 
			
		||||
	"enable"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,7 +81,7 @@ That defines some categories of errors:
 | 
			
		|||
  still run, eventually replacing the affected hardware by a hot spare,
 | 
			
		||||
  if available.
 | 
			
		||||
 | 
			
		||||
  Also, when an error happens on an userspace process, it is also possible to
 | 
			
		||||
  Also, when an error happens on a userspace process, it is also possible to
 | 
			
		||||
  kill such process and let userspace restart it.
 | 
			
		||||
 | 
			
		||||
The mechanism for handling non-fatal errors is usually complex and may
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ driver and currently works well under standard IDE subsystem. Actually it's
 | 
			
		|||
one chip SSD. IO mode is ATA-like custom mode for the host that doesn't have
 | 
			
		||||
IDE interface.
 | 
			
		||||
 | 
			
		||||
Followings are brief descriptions about IO mode.
 | 
			
		||||
Following are brief descriptions about IO mode.
 | 
			
		||||
A. IO mode based on ATA protocol and uses some custom command. (read confirm,
 | 
			
		||||
write confirm)
 | 
			
		||||
B. IO mode uses SRAM bus interface.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -319,7 +319,7 @@ Version History
 | 
			
		|||
1.5.2   'mismatch_cnt' is zero unless [last_]sync_action is "check".
 | 
			
		||||
1.6.0   Add discard support (and devices_handle_discard_safely module param).
 | 
			
		||||
1.7.0   Add support for MD RAID0 mappings.
 | 
			
		||||
1.8.0   Explictely check for compatible flags in the superblock metadata
 | 
			
		||||
1.8.0   Explicitly check for compatible flags in the superblock metadata
 | 
			
		||||
	and reject to start the raid set if any are set by a newer
 | 
			
		||||
	target version, thus avoiding data corruption on a raid set
 | 
			
		||||
	with a reshape in progress.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -234,7 +234,7 @@ see regulator.txt - with additional custom properties described below:
 | 
			
		|||
- qcom,switch-mode-frequency:
 | 
			
		||||
	Usage: required
 | 
			
		||||
	Value type: <u32>
 | 
			
		||||
	Definition: Frequency (Hz) of the swith mode power supply;
 | 
			
		||||
	Definition: Frequency (Hz) of the switch mode power supply;
 | 
			
		||||
		    must be one of:
 | 
			
		||||
		    19200000, 9600000, 6400000, 4800000, 3840000, 3200000,
 | 
			
		||||
		    2740000, 2400000, 2130000, 1920000, 1750000, 1600000,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
* Marvell Armada 370 / Armada XP / Armada 3700 Ethernet Controller (NETA)
 | 
			
		||||
 | 
			
		||||
Required properties:
 | 
			
		||||
- compatible: could be one of the followings
 | 
			
		||||
- compatible: could be one of the following:
 | 
			
		||||
	"marvell,armada-370-neta"
 | 
			
		||||
	"marvell,armada-xp-neta"
 | 
			
		||||
	"marvell,armada-3700-neta"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -136,7 +136,7 @@ Optional properties:
 | 
			
		|||
  larger OPP table, based on what version of the hardware we are running on. We
 | 
			
		||||
  still can't have multiple nodes with the same opp-hz value in OPP table.
 | 
			
		||||
 | 
			
		||||
  It's an user defined array containing a hierarchy of hardware version numbers,
 | 
			
		||||
  It's a user defined array containing a hierarchy of hardware version numbers,
 | 
			
		||||
  supported by the OPP. For example: a platform with hierarchy of three levels
 | 
			
		||||
  of versions (A, B and C), this field should be like <X Y Z>, where X
 | 
			
		||||
  corresponds to Version hierarchy A, Y corresponds to version hierarchy B and Z
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,7 @@ the first two functions being GPIO in and out. The configuration on
 | 
			
		|||
the pins includes drive strength and pull-up.
 | 
			
		||||
 | 
			
		||||
Required properties:
 | 
			
		||||
- compatible: Should be one of the followings (depending on you SoC):
 | 
			
		||||
- compatible: Should be one of the following (depending on your SoC):
 | 
			
		||||
  "allwinner,sun4i-a10-pinctrl"
 | 
			
		||||
  "allwinner,sun5i-a10s-pinctrl"
 | 
			
		||||
  "allwinner,sun5i-a13-pinctrl"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,7 +23,7 @@ Optional Properties:
 | 
			
		|||
- clock-names: The following clocks can be specified:
 | 
			
		||||
	- oscclk: Oscillator clock.
 | 
			
		||||
	- clkN: Input clocks to the devices in this power domain. These clocks
 | 
			
		||||
		will be reparented to oscclk before swithing power domain off.
 | 
			
		||||
		will be reparented to oscclk before switching power domain off.
 | 
			
		||||
		Their original parent will be brought back after turning on
 | 
			
		||||
		the domain. Maximum of 4 clocks (N = 0 to 3) are supported.
 | 
			
		||||
	- asbN: Clocks required by asynchronous bridges (ASB) present in
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@ From RK3368 SoCs, the GRF is divided into two sections,
 | 
			
		|||
 | 
			
		||||
Required Properties:
 | 
			
		||||
 | 
			
		||||
- compatible: GRF should be one of the followings
 | 
			
		||||
- compatible: GRF should be one of the following:
 | 
			
		||||
   - "rockchip,rk3036-grf", "syscon": for rk3036
 | 
			
		||||
   - "rockchip,rk3066-grf", "syscon": for rk3066
 | 
			
		||||
   - "rockchip,rk3188-grf", "syscon": for rk3188
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +18,7 @@ Required Properties:
 | 
			
		|||
   - "rockchip,rk3288-grf", "syscon": for rk3288
 | 
			
		||||
   - "rockchip,rk3368-grf", "syscon": for rk3368
 | 
			
		||||
   - "rockchip,rk3399-grf", "syscon": for rk3399
 | 
			
		||||
- compatible: PMUGRF should be one of the followings
 | 
			
		||||
- compatible: PMUGRF should be one of the following:
 | 
			
		||||
   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
 | 
			
		||||
   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
 | 
			
		||||
- compatible: SGRF should be one of the following
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@ audio data transfer between devices in the system.
 | 
			
		|||
 | 
			
		||||
Required properties:
 | 
			
		||||
 | 
			
		||||
- compatible: should be one of the followings
 | 
			
		||||
- compatible: should be one of the following:
 | 
			
		||||
   - "rockchip,rk3066-i2s": for rk3066
 | 
			
		||||
   - "rockchip,rk3188-i2s", "rockchip,rk3066-i2s": for rk3188
 | 
			
		||||
   - "rockchip,rk3288-i2s", "rockchip,rk3066-i2s": for rk3288
 | 
			
		||||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ Required properties:
 | 
			
		|||
	Documentation/devicetree/bindings/dma/dma.txt
 | 
			
		||||
- dma-names: should include "tx" and "rx".
 | 
			
		||||
- clocks: a list of phandle + clock-specifer pairs, one for each entry in clock-names.
 | 
			
		||||
- clock-names: should contain followings:
 | 
			
		||||
- clock-names: should contain the following:
 | 
			
		||||
   - "i2s_hclk": clock for I2S BUS
 | 
			
		||||
   - "i2s_clk" : clock for I2S controller
 | 
			
		||||
- rockchip,playback-channels: max playback channels, if not set, 8 channels default.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,7 +14,7 @@ Required properties:
 | 
			
		|||
- dma-names: should include "tx" and "rx".
 | 
			
		||||
- clocks: a list of phandle + clock-specifer pairs, one for each entry
 | 
			
		||||
  in clock-names.
 | 
			
		||||
- clock-names: should contain followings:
 | 
			
		||||
- clock-names: should contain the following:
 | 
			
		||||
   - "apb": the parent APB clock for this controller
 | 
			
		||||
   - "codec": the parent module clock
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@ audio data transfer between devices in the system.
 | 
			
		|||
 | 
			
		||||
Required properties:
 | 
			
		||||
 | 
			
		||||
- compatible: should be one of the followings
 | 
			
		||||
- compatible: should be one of the following:
 | 
			
		||||
   - "allwinner,sun4i-a10-i2s"
 | 
			
		||||
   - "allwinner,sun6i-a31-i2s"
 | 
			
		||||
- reg: physical base address of the controller and length of memory mapped
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +15,7 @@ Required properties:
 | 
			
		|||
	Documentation/devicetree/bindings/dma/dma.txt
 | 
			
		||||
- dma-names: should include "tx" and "rx".
 | 
			
		||||
- clocks: a list of phandle + clock-specifer pairs, one for each entry in clock-names.
 | 
			
		||||
- clock-names: should contain followings:
 | 
			
		||||
- clock-names: should contain the following:
 | 
			
		||||
   - "apb" : clock for the I2S bus interface
 | 
			
		||||
   - "mod" : module clock for the I2S controller
 | 
			
		||||
- #sound-dai-cells : Must be equal to 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -179,6 +179,7 @@ struct autofs_dev_ioctl {
 | 
			
		|||
				 * including this struct */
 | 
			
		||||
	__s32 ioctlfd;          /* automount command fd */
 | 
			
		||||
 | 
			
		||||
	/* Command parameters */
 | 
			
		||||
	union {
 | 
			
		||||
		struct args_protover		protover;
 | 
			
		||||
		struct args_protosubver		protosubver;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ directory is a mount trap only if the filesystem is mounted *direct*
 | 
			
		|||
and the root is empty.
 | 
			
		||||
 | 
			
		||||
Directories created in the root directory are mount traps only if the
 | 
			
		||||
filesystem is mounted  *indirect* and they are empty.
 | 
			
		||||
filesystem is mounted *indirect* and they are empty.
 | 
			
		||||
 | 
			
		||||
Directories further down the tree depend on the *maxproto* mount
 | 
			
		||||
option and particularly whether it is less than five or not.
 | 
			
		||||
| 
						 | 
				
			
			@ -352,7 +352,7 @@ Communicating with autofs: root directory ioctls
 | 
			
		|||
------------------------------------------------
 | 
			
		||||
 | 
			
		||||
The root directory of an autofs filesystem will respond to a number of
 | 
			
		||||
ioctls.   The process issuing the ioctl must have the CAP_SYS_ADMIN
 | 
			
		||||
ioctls.  The process issuing the ioctl must have the CAP_SYS_ADMIN
 | 
			
		||||
capability, or must be the automount daemon.
 | 
			
		||||
 | 
			
		||||
The available ioctl commands are:
 | 
			
		||||
| 
						 | 
				
			
			@ -425,8 +425,20 @@ Each ioctl is passed a pointer to an `autofs_dev_ioctl` structure:
 | 
			
		|||
                                         * including this struct */
 | 
			
		||||
                __s32 ioctlfd;          /* automount command fd */
 | 
			
		||||
 | 
			
		||||
                __u32 arg1;             /* Command parameters */
 | 
			
		||||
                __u32 arg2;
 | 
			
		||||
		/* Command parameters */
 | 
			
		||||
		union {
 | 
			
		||||
			struct args_protover		protover;
 | 
			
		||||
			struct args_protosubver		protosubver;
 | 
			
		||||
			struct args_openmount		openmount;
 | 
			
		||||
			struct args_ready		ready;
 | 
			
		||||
			struct args_fail		fail;
 | 
			
		||||
			struct args_setpipefd		setpipefd;
 | 
			
		||||
			struct args_timeout		timeout;
 | 
			
		||||
			struct args_requester		requester;
 | 
			
		||||
			struct args_expire		expire;
 | 
			
		||||
			struct args_askumount		askumount;
 | 
			
		||||
			struct args_ismountpoint	ismountpoint;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
                char path[0];
 | 
			
		||||
        };
 | 
			
		||||
| 
						 | 
				
			
			@ -446,25 +458,22 @@ Commands are:
 | 
			
		|||
    set version numbers.
 | 
			
		||||
- **AUTOFS_DEV_IOCTL_OPENMOUNT_CMD**: return an open file descriptor
 | 
			
		||||
    on the root of an autofs filesystem.  The filesystem is identified
 | 
			
		||||
    by name and device number, which is stored in `arg1`.  Device
 | 
			
		||||
    numbers for existing filesystems can be found in
 | 
			
		||||
    by name and device number, which is stored in `openmount.devid`.
 | 
			
		||||
    Device numbers for existing filesystems can be found in
 | 
			
		||||
    `/proc/self/mountinfo`.
 | 
			
		||||
- **AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD**: same as `close(ioctlfd)`.
 | 
			
		||||
- **AUTOFS_DEV_IOCTL_SETPIPEFD_CMD**: if the filesystem is in
 | 
			
		||||
    catatonic mode, this can provide the write end of a new pipe
 | 
			
		||||
    in `arg1` to re-establish communication with a daemon.  The
 | 
			
		||||
    process group of the calling process is used to identify the
 | 
			
		||||
    in `setpipefd.pipefd` to re-establish communication with a daemon.
 | 
			
		||||
    The process group of the calling process is used to identify the
 | 
			
		||||
    daemon.
 | 
			
		||||
- **AUTOFS_DEV_IOCTL_REQUESTER_CMD**: `path` should be a
 | 
			
		||||
    name within the filesystem that has been auto-mounted on.
 | 
			
		||||
    arg1 is the dev number of the underlying autofs.  On successful
 | 
			
		||||
    return, `arg1` and `arg2` will be the UID and GID of the process
 | 
			
		||||
    which triggered that mount.
 | 
			
		||||
 | 
			
		||||
    On successful return, `requester.uid` and `requester.gid` will be
 | 
			
		||||
    the UID and GID of the process which triggered that mount.
 | 
			
		||||
- **AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD**: Check if path is a
 | 
			
		||||
    mountpoint of a particular type - see separate documentation for
 | 
			
		||||
    details.
 | 
			
		||||
 | 
			
		||||
- **AUTOFS_DEV_IOCTL_PROTOVER_CMD**:
 | 
			
		||||
- **AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD**:
 | 
			
		||||
- **AUTOFS_DEV_IOCTL_READY_CMD**:
 | 
			
		||||
| 
						 | 
				
			
			@ -474,7 +483,7 @@ Commands are:
 | 
			
		|||
- **AUTOFS_DEV_IOCTL_EXPIRE_CMD**:
 | 
			
		||||
- **AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD**:  These all have the same
 | 
			
		||||
    function as the similarly named **AUTOFS_IOC** ioctls, except
 | 
			
		||||
    that **FAIL** can be given an explicit error number in `arg1`
 | 
			
		||||
    that **FAIL** can be given an explicit error number in `fail.status`
 | 
			
		||||
    instead of assuming `ENOENT`, and this **EXPIRE** command
 | 
			
		||||
    corresponds to **AUTOFS_IOC_EXPIRE_MULTI**.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -512,7 +521,7 @@ always be mounted "shared". e.g.
 | 
			
		|||
 | 
			
		||||
> `mount --make-shared /autofs/mount/point`
 | 
			
		||||
 | 
			
		||||
The automount daemon is only able to mange a single mount location for
 | 
			
		||||
The automount daemon is only able to manage a single mount location for
 | 
			
		||||
an autofs filesystem and if mounts on that are not 'shared', other
 | 
			
		||||
locations will not behave as expected.  In particular access to those
 | 
			
		||||
other locations will likely result in the `ELOOP` error
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,7 @@ Quota subsystem allows system administrator to set limits on used space and
 | 
			
		|||
number of used inodes (inode is a filesystem structure which is associated with
 | 
			
		||||
each file or directory) for users and/or groups. For both used space and number
 | 
			
		||||
of used inodes there are actually two limits. The first one is called softlimit
 | 
			
		||||
and the second one hardlimit.  An user can never exceed a hardlimit for any
 | 
			
		||||
and the second one hardlimit.  A user can never exceed a hardlimit for any
 | 
			
		||||
resource (unless he has CAP_SYS_RESOURCE capability). User is allowed to exceed
 | 
			
		||||
softlimit but only for limited period of time. This period is called "grace
 | 
			
		||||
period" or "grace time". When grace time is over, user is not able to allocate
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,14 +59,14 @@ Install selftests
 | 
			
		|||
=================
 | 
			
		||||
 | 
			
		||||
You can use kselftest_install.sh tool installs selftests in default
 | 
			
		||||
location which is tools/testing/selftests/kselftest or an user specified
 | 
			
		||||
location which is tools/testing/selftests/kselftest or a user specified
 | 
			
		||||
location.
 | 
			
		||||
 | 
			
		||||
To install selftests in default location:
 | 
			
		||||
   $ cd tools/testing/selftests
 | 
			
		||||
   $ ./kselftest_install.sh
 | 
			
		||||
 | 
			
		||||
To install selftests in an user specified location:
 | 
			
		||||
To install selftests in a user specified location:
 | 
			
		||||
   $ cd tools/testing/selftests
 | 
			
		||||
   $ ./kselftest_install.sh install_dir
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,7 @@ existing low level CI API.
 | 
			
		|||
ca_zap
 | 
			
		||||
~~~~~~
 | 
			
		||||
 | 
			
		||||
An userspace application, like ``ca_zap`` is required to handle encrypted
 | 
			
		||||
A userspace application, like ``ca_zap`` is required to handle encrypted
 | 
			
		||||
MPEG-TS streams.
 | 
			
		||||
 | 
			
		||||
The ``ca_zap`` userland application is in charge of sending the
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ frontend parameters
 | 
			
		|||
The kind of parameters passed to the frontend device for tuning depend
 | 
			
		||||
on the kind of hardware you are using.
 | 
			
		||||
 | 
			
		||||
The struct ``dvb_frontend_parameters`` uses an union with specific
 | 
			
		||||
The struct ``dvb_frontend_parameters`` uses a union with specific
 | 
			
		||||
per-system parameters. However, as newer delivery systems required more
 | 
			
		||||
data, the structure size weren't enough to fit, and just extending its
 | 
			
		||||
size would break the existing applications. So, those parameters were
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,7 @@ So, newer applications should use
 | 
			
		|||
instead, in order to be able to support the newer System Delivery like
 | 
			
		||||
DVB-S2, DVB-T2, DVB-C2, ISDB, etc.
 | 
			
		||||
 | 
			
		||||
All kinds of parameters are combined as an union in the
 | 
			
		||||
All kinds of parameters are combined as a union in the
 | 
			
		||||
FrontendParameters structure:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,11 +114,11 @@ config options.
 | 
			
		|||
    Memory model -> Sparse Memory  (CONFIG_SPARSEMEM)
 | 
			
		||||
    Allow for memory hot-add       (CONFIG_MEMORY_HOTPLUG)
 | 
			
		||||
 | 
			
		||||
- To enable memory removal, the followings are also necessary
 | 
			
		||||
- To enable memory removal, the following are also necessary
 | 
			
		||||
    Allow for memory hot remove    (CONFIG_MEMORY_HOTREMOVE)
 | 
			
		||||
    Page Migration                 (CONFIG_MIGRATION)
 | 
			
		||||
 | 
			
		||||
- For ACPI memory hotplug, the followings are also necessary
 | 
			
		||||
- For ACPI memory hotplug, the following are also necessary
 | 
			
		||||
    Memory hotplug (under ACPI Support menu) (CONFIG_ACPI_HOTPLUG_MEMORY)
 | 
			
		||||
    This option can be kernel module.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ Basic usage
 | 
			
		|||
===========
 | 
			
		||||
 | 
			
		||||
MBIM functions are inactive when unmanaged. The cdc_mbim driver only
 | 
			
		||||
provides an userspace interface to the MBIM control channel, and will
 | 
			
		||||
provides a userspace interface to the MBIM control channel, and will
 | 
			
		||||
not participate in the management of the function. This implies that a
 | 
			
		||||
userspace MBIM management application always is required to enable a
 | 
			
		||||
MBIM function.
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +200,7 @@ structure described in section 10.5.29 of [1].
 | 
			
		|||
The DSS VLAN subdevices are used as a practical interface between the
 | 
			
		||||
shared MBIM data channel and a MBIM DSS aware userspace application.
 | 
			
		||||
It is not intended to be presented as-is to an end user. The
 | 
			
		||||
assumption is that an userspace application initiating a DSS session
 | 
			
		||||
assumption is that a userspace application initiating a DSS session
 | 
			
		||||
also takes care of the necessary framing of the DSS data, presenting
 | 
			
		||||
the stream to the end user in an appropriate way for the stream type.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -549,7 +549,7 @@ ii.	Reduced by 1 max cmds sent to FW from Driver to make the reply_q_sz same
 | 
			
		|||
3 Older Version   : 00.00.03.02
 | 
			
		||||
 | 
			
		||||
i.	Send stop adapter to FW & Dump pending FW cmds before declaring adapter dead.
 | 
			
		||||
	New varible added to set dbg level.
 | 
			
		||||
	New variable added to set dbg level.
 | 
			
		||||
ii.	Disable interrupt made as fn pointer as they are different for 1068 / 1078
 | 
			
		||||
iii.	Frame count optimization. Main frame can contain 2 SGE for 64 bit SGLs and
 | 
			
		||||
	3 SGE for 32 bit SGL
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -697,7 +697,7 @@ If it's a regression, at best, send alsa-info outputs of both working
 | 
			
		|||
and non-working kernels.  This is really helpful because we can
 | 
			
		||||
compare the codec registers directly.
 | 
			
		||||
 | 
			
		||||
Send a bug report either the followings:
 | 
			
		||||
Send a bug report either the following:
 | 
			
		||||
 | 
			
		||||
kernel-bugzilla
 | 
			
		||||
    https://bugzilla.kernel.org/
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -149,7 +149,7 @@ migration thread in the QEMU running in the destination node will
 | 
			
		|||
receive the page that triggered the userfault and it'll map it as
 | 
			
		||||
usual with the UFFDIO_COPY|ZEROPAGE (without actually knowing if it
 | 
			
		||||
was spontaneously sent by the source or if it was an urgent page
 | 
			
		||||
requested through an userfault).
 | 
			
		||||
requested through a userfault).
 | 
			
		||||
 | 
			
		||||
By the time the userfaults start, the QEMU in the destination node
 | 
			
		||||
doesn't need to keep any per-page state bitmap relative to the live
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7286,6 +7286,7 @@ M:	Masami Hiramatsu <mhiramat@kernel.org>
 | 
			
		|||
S:	Maintained
 | 
			
		||||
F:	Documentation/kprobes.txt
 | 
			
		||||
F:	include/linux/kprobes.h
 | 
			
		||||
F:	include/asm-generic/kprobes.h
 | 
			
		||||
F:	kernel/kprobes.c
 | 
			
		||||
 | 
			
		||||
KS0108 LCD CONTROLLER DRIVER
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ config OPROFILE_EVENT_MULTIPLEX
 | 
			
		|||
	  The number of hardware counters is limited. The multiplexing
 | 
			
		||||
	  feature enables OProfile to gather more events than counters
 | 
			
		||||
	  are provided by the hardware. This is realized by switching
 | 
			
		||||
	  between events at an user specified time interval.
 | 
			
		||||
	  between events at a user specified time interval.
 | 
			
		||||
 | 
			
		||||
	  If unsure, say N.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,3 +10,4 @@ generic-y += preempt.h
 | 
			
		|||
generic-y += sections.h
 | 
			
		||||
generic-y += trace_clock.h
 | 
			
		||||
generic-y += current.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -144,7 +144,7 @@ smp_callin(void)
 | 
			
		|||
		alpha_mv.smp_callin();
 | 
			
		||||
 | 
			
		||||
	/* All kernel threads share the same mm context.  */
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
 | 
			
		||||
	/* inform the notifiers about the new cpu */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,8 @@
 | 
			
		|||
#ifndef _ARC_KPROBES_H
 | 
			
		||||
#define _ARC_KPROBES_H
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
 | 
			
		||||
typedef u16 kprobe_opcode_t;
 | 
			
		||||
| 
						 | 
				
			
			@ -55,6 +57,6 @@ void trap_is_kprobe(unsigned long address, struct pt_regs *regs);
 | 
			
		|||
static void trap_is_kprobe(unsigned long address, struct pt_regs *regs)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* CONFIG_KPROBES */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* _ARC_KPROBES_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -139,8 +139,8 @@ void start_kernel_secondary(void)
 | 
			
		|||
	/* MMU, Caches, Vector Table, Interrupts etc */
 | 
			
		||||
	setup_processor();
 | 
			
		||||
 | 
			
		||||
	atomic_inc(&mm->mm_users);
 | 
			
		||||
	atomic_inc(&mm->mm_count);
 | 
			
		||||
	mmget(mm);
 | 
			
		||||
	mmgrab(mm);
 | 
			
		||||
	current->active_mm = mm;
 | 
			
		||||
	cpumask_set_cpu(cpu, mm_cpumask(mm));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1051,9 +1051,9 @@ int arc_unwind(struct unwind_frame_info *frame)
 | 
			
		|||
		++ptr;
 | 
			
		||||
	}
 | 
			
		||||
	if (cie != NULL) {
 | 
			
		||||
		/* get code aligment factor */
 | 
			
		||||
		/* get code alignment factor */
 | 
			
		||||
		state.codeAlign = get_uleb128(&ptr, end);
 | 
			
		||||
		/* get data aligment factor */
 | 
			
		||||
		/* get data alignment factor */
 | 
			
		||||
		state.dataAlign = get_sleb128(&ptr, end);
 | 
			
		||||
		if (state.codeAlign == 0 || state.dataAlign == 0 || ptr >= end)
 | 
			
		||||
			cie = NULL;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1196,7 +1196,7 @@ skip:
 | 
			
		|||
		bgt	loop1
 | 
			
		||||
finished:
 | 
			
		||||
		ldmfd	sp!, {r0-r7, r9-r11}
 | 
			
		||||
		mov	r10, #0			@ swith back to cache level 0
 | 
			
		||||
		mov	r10, #0			@ switch back to cache level 0
 | 
			
		||||
		mcr	p15, 2, r10, c0, c0, 0	@ select current cache level in cssr
 | 
			
		||||
iflush:
 | 
			
		||||
		mcr	p15, 0, r10, c7, c10, 4	@ DSB
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,9 @@
 | 
			
		|||
#ifndef _ARM_KPROBES_H
 | 
			
		||||
#define _ARM_KPROBES_H
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
#include <linux/ptrace.h>
 | 
			
		||||
#include <linux/notifier.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -83,4 +86,5 @@ struct arch_optimized_insn {
 | 
			
		|||
	 */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_KPROBES */
 | 
			
		||||
#endif /* _ARM_KPROBES_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,7 @@ struct mtd_info;
 | 
			
		|||
 * set_vpp:	method called to enable or disable VPP
 | 
			
		||||
 * mmcontrol:	method called to enable or disable Sync. Burst Read in OneNAND
 | 
			
		||||
 * parts:	optional array of mtd_partitions for static partitioning
 | 
			
		||||
 * nr_parts:	number of mtd_partitions for static partitoning
 | 
			
		||||
 * nr_parts:	number of mtd_partitions for static partitioning
 | 
			
		||||
 */
 | 
			
		||||
struct flash_platform_data {
 | 
			
		||||
	const char	*map_name;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -371,7 +371,7 @@ asmlinkage void secondary_start_kernel(void)
 | 
			
		|||
	 * reference and switch to it.
 | 
			
		||||
	 */
 | 
			
		||||
	cpu = smp_processor_id();
 | 
			
		||||
	atomic_inc(&mm->mm_count);
 | 
			
		||||
	mmgrab(mm);
 | 
			
		||||
	current->active_mm = mm;
 | 
			
		||||
	cpumask_set_cpu(cpu, mm_cpumask(mm));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
/**
 | 
			
		||||
 * OMAP and TWL PMIC specific intializations.
 | 
			
		||||
 * OMAP and TWL PMIC specific initializations.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2010 Texas Instruments Incorporated.
 | 
			
		||||
 * Thara Gopinath
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -164,7 +164,7 @@ skip:
 | 
			
		|||
	cmp	r3, r10
 | 
			
		||||
	bgt	flush_levels
 | 
			
		||||
finished:
 | 
			
		||||
	mov	r10, #0				@ swith back to cache level 0
 | 
			
		||||
	mov	r10, #0				@ switch back to cache level 0
 | 
			
		||||
	mcr	p15, 2, r10, c0, c0, 0		@ select current cache level in cssr
 | 
			
		||||
	dsb	st
 | 
			
		||||
	isb
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -217,7 +217,7 @@ skip:
 | 
			
		|||
	cmp	r3, r10
 | 
			
		||||
	bgt	flush_levels
 | 
			
		||||
finished:
 | 
			
		||||
	mov	r10, #0				@ swith back to cache level 0
 | 
			
		||||
	mov	r10, #0				@ switch back to cache level 0
 | 
			
		||||
	write_csselr r10, r3			@ select current cache level in cssr
 | 
			
		||||
	dsb	st
 | 
			
		||||
	isb
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,6 +22,7 @@
 | 
			
		|||
#include <linux/types.h>
 | 
			
		||||
#include <linux/stddef.h>
 | 
			
		||||
#include <asm/probes.h>
 | 
			
		||||
#include <asm/kprobes.h>
 | 
			
		||||
 | 
			
		||||
void __init arm_probes_decode_init(void);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,9 @@
 | 
			
		|||
#ifndef _ARM_KPROBES_H
 | 
			
		||||
#define _ARM_KPROBES_H
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
#include <linux/ptrace.h>
 | 
			
		||||
#include <linux/percpu.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -57,4 +60,5 @@ int kprobe_single_step_handler(struct pt_regs *regs, unsigned int esr);
 | 
			
		|||
void kretprobe_trampoline(void);
 | 
			
		||||
void __kprobes *trampoline_probe_handler(struct pt_regs *regs);
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_KPROBES */
 | 
			
		||||
#endif /* _ARM_KPROBES_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,7 @@
 | 
			
		|||
#include <asm/sysreg.h>
 | 
			
		||||
#include <asm/system_misc.h>
 | 
			
		||||
#include <asm/traps.h>
 | 
			
		||||
#include <asm/kprobes.h>
 | 
			
		||||
#include <linux/uaccess.h>
 | 
			
		||||
#include <asm/cpufeature.h>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,7 @@
 | 
			
		|||
#include <asm/debug-monitors.h>
 | 
			
		||||
#include <asm/fixmap.h>
 | 
			
		||||
#include <asm/insn.h>
 | 
			
		||||
#include <asm/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#define AARCH64_INSN_SF_BIT	BIT(31)
 | 
			
		||||
#define AARCH64_INSN_N_BIT	BIT(22)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,8 @@
 | 
			
		|||
#ifndef _ARM_KERNEL_KPROBES_ARM64_H
 | 
			
		||||
#define _ARM_KERNEL_KPROBES_ARM64_H
 | 
			
		||||
 | 
			
		||||
#include <asm/kprobes.h>
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * ARM strongly recommends a limit of 128 bytes between LoadExcl and
 | 
			
		||||
 * StoreExcl instructions in a single thread of execution. So keep the
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -222,7 +222,7 @@ asmlinkage void secondary_start_kernel(void)
 | 
			
		|||
	 * All kernel threads share the same mm context; grab a
 | 
			
		||||
	 * reference and switch to it.
 | 
			
		||||
	 */
 | 
			
		||||
	atomic_inc(&mm->mm_count);
 | 
			
		||||
	mmgrab(mm);
 | 
			
		||||
	current->active_mm = mm;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,7 +62,7 @@ D_h	.req	x14
 | 
			
		|||
	sub	count, count, tmp2
 | 
			
		||||
	/*
 | 
			
		||||
	* Copy the leading memory data from src to dst in an increasing
 | 
			
		||||
	* address order.By this way,the risk of overwritting the source
 | 
			
		||||
	* address order.By this way,the risk of overwriting the source
 | 
			
		||||
	* memory data is eliminated when the distance between src and
 | 
			
		||||
	* dst is less than 16. The memory accesses here are alignment.
 | 
			
		||||
	*/
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,10 +11,14 @@
 | 
			
		|||
#ifndef __ASM_AVR32_KPROBES_H
 | 
			
		||||
#define __ASM_AVR32_KPROBES_H
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION	0xd673	/* breakpoint */
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
 | 
			
		||||
typedef u16	kprobe_opcode_t;
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION	0xd673	/* breakpoint */
 | 
			
		||||
#define MAX_INSN_SIZE		2
 | 
			
		||||
#define MAX_STACK_SIZE		64	/* 32 would probably be OK */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -46,4 +50,5 @@ extern int kprobe_exceptions_notify(struct notifier_block *self,
 | 
			
		|||
 | 
			
		||||
#define flush_insn_slot(p)	do { } while (0)
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_KPROBES */
 | 
			
		||||
#endif /* __ASM_AVR32_KPROBES_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,3 +46,4 @@ generic-y += unaligned.h
 | 
			
		|||
generic-y += user.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -307,8 +307,8 @@ void secondary_start_kernel(void)
 | 
			
		|||
	local_irq_disable();
 | 
			
		||||
 | 
			
		||||
	/* Attach the new idle task to the global mm. */
 | 
			
		||||
	atomic_inc(&mm->mm_users);
 | 
			
		||||
	atomic_inc(&mm->mm_count);
 | 
			
		||||
	mmget(mm);
 | 
			
		||||
	mmgrab(mm);
 | 
			
		||||
	current->active_mm = mm;
 | 
			
		||||
 | 
			
		||||
	preempt_disable();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,3 +61,4 @@ generic-y += user.h
 | 
			
		|||
generic-y += vga.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,3 +45,4 @@ generic-y += types.h
 | 
			
		|||
generic-y += vga.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,3 +7,4 @@ generic-y += mm-arch-hooks.h
 | 
			
		|||
generic-y += preempt.h
 | 
			
		||||
generic-y += trace_clock.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -188,7 +188,7 @@ int cxn_pin_by_pid(pid_t pid)
 | 
			
		|||
		task_lock(tsk);
 | 
			
		||||
		if (tsk->mm) {
 | 
			
		||||
			mm = tsk->mm;
 | 
			
		||||
			atomic_inc(&mm->mm_users);
 | 
			
		||||
			mmget(mm);
 | 
			
		||||
			ret = 0;
 | 
			
		||||
		}
 | 
			
		||||
		task_unlock(tsk);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -74,3 +74,4 @@ generic-y += unaligned.h
 | 
			
		|||
generic-y += vga.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,3 +59,4 @@ generic-y += unaligned.h
 | 
			
		|||
generic-y += vga.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -162,7 +162,7 @@ void start_secondary(void)
 | 
			
		|||
	);
 | 
			
		||||
 | 
			
		||||
	/*  Set the memory struct  */
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
 | 
			
		||||
	cpu = smp_processor_id();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,14 +23,19 @@
 | 
			
		|||
 * 2005-Apr     Rusty Lynch <rusty.lynch@intel.com> and Anil S Keshavamurthy
 | 
			
		||||
 *              <anil.s.keshavamurthy@intel.com> adapted from i386
 | 
			
		||||
 */
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
#include <asm/break.h>
 | 
			
		||||
 | 
			
		||||
#define BREAK_INST	(long)(__IA64_BREAK_KPROBE << 6)
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
#include <linux/ptrace.h>
 | 
			
		||||
#include <linux/percpu.h>
 | 
			
		||||
#include <asm/break.h>
 | 
			
		||||
 | 
			
		||||
#define __ARCH_WANT_KPROBES_INSN_SLOT
 | 
			
		||||
#define MAX_INSN_SIZE   2	/* last half is for kprobe-booster */
 | 
			
		||||
#define BREAK_INST	(long)(__IA64_BREAK_KPROBE << 6)
 | 
			
		||||
#define NOP_M_INST	(long)(1<<27)
 | 
			
		||||
#define BRL_INST(i1, i2) ((long)((0xcL << 37) |	/* brl */ \
 | 
			
		||||
				(0x1L << 12) |	/* many */ \
 | 
			
		||||
| 
						 | 
				
			
			@ -124,4 +129,5 @@ extern void invalidate_stacked_regs(void);
 | 
			
		|||
extern void flush_register_stack(void);
 | 
			
		||||
extern void arch_remove_kprobe(struct kprobe *p);
 | 
			
		||||
 | 
			
		||||
#endif				/* _ASM_KPROBES_H */
 | 
			
		||||
#endif /* CONFIG_KPROBES */
 | 
			
		||||
#endif /* _ASM_KPROBES_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -994,7 +994,7 @@ cpu_init (void)
 | 
			
		|||
	 */
 | 
			
		||||
	ia64_setreg(_IA64_REG_CR_DCR,  (  IA64_DCR_DP | IA64_DCR_DK | IA64_DCR_DX | IA64_DCR_DR
 | 
			
		||||
					| IA64_DCR_DA | IA64_DCR_DD | IA64_DCR_LC));
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
	BUG_ON(current->mm);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -525,7 +525,7 @@ static int sn_topology_show(struct seq_file *s, void *d)
 | 
			
		|||
				/* both ends local to this partition */
 | 
			
		||||
				seq_puts(s, " local");
 | 
			
		||||
			else if (SN_HWPERF_FOREIGN(p))
 | 
			
		||||
				/* both ends of the link in foreign partiton */
 | 
			
		||||
				/* both ends of the link in foreign partition */
 | 
			
		||||
				seq_puts(s, " foreign");
 | 
			
		||||
			else
 | 
			
		||||
				/* link straddles a partition */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,3 +11,4 @@ generic-y += preempt.h
 | 
			
		|||
generic-y += sections.h
 | 
			
		||||
generic-y += trace_clock.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -403,7 +403,7 @@ void __init cpu_init (void)
 | 
			
		|||
	printk(KERN_INFO "Initializing CPU#%d\n", cpu_id);
 | 
			
		||||
 | 
			
		||||
	/* Set up and load the per-CPU TSS and LDT */
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
	if (current->mm)
 | 
			
		||||
		BUG();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3814,7 +3814,7 @@ CAS2W2_FILLER:
 | 
			
		|||
#	(3) Save current DFC/SFC (ASSUMED TO BE EQUAL!!!); Then set	#
 | 
			
		||||
#	    SFC/DFC according to whether exception occurred in user or	#
 | 
			
		||||
#	    supervisor mode.						#
 | 
			
		||||
#	(4) Use "plpaw" instruction to pre-load ATC with efective	#
 | 
			
		||||
#	(4) Use "plpaw" instruction to pre-load ATC with effective	#
 | 
			
		||||
#	    address page(s). THIS SHOULD NOT FAULT!!! The relevant	#
 | 
			
		||||
#	    page(s) should have been made resident prior to entering	#
 | 
			
		||||
#	    this routine.						#
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,3 +33,4 @@ generic-y += trace_clock.h
 | 
			
		|||
generic-y += types.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,3 +54,4 @@ generic-y += user.h
 | 
			
		|||
generic-y += vga.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -344,8 +344,8 @@ asmlinkage void secondary_start_kernel(void)
 | 
			
		|||
	 * All kernel threads share the same mm context; grab a
 | 
			
		||||
	 * reference and switch to it.
 | 
			
		||||
	 */
 | 
			
		||||
	atomic_inc(&mm->mm_users);
 | 
			
		||||
	atomic_inc(&mm->mm_count);
 | 
			
		||||
	mmget(mm);
 | 
			
		||||
	mmgrab(mm);
 | 
			
		||||
	current->active_mm = mm;
 | 
			
		||||
	cpumask_set_cpu(cpu, mm_cpumask(mm));
 | 
			
		||||
	enter_lazy_tlb(mm, current);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,3 +10,4 @@ generic-y += preempt.h
 | 
			
		|||
generic-y += syscalls.h
 | 
			
		||||
generic-y += trace_clock.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,6 +22,9 @@
 | 
			
		|||
#ifndef _ASM_KPROBES_H
 | 
			
		||||
#define _ASM_KPROBES_H
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
#include <linux/ptrace.h>
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -94,4 +97,5 @@ struct kprobe_ctlblk {
 | 
			
		|||
extern int kprobe_exceptions_notify(struct notifier_block *self,
 | 
			
		||||
				    unsigned long val, void *data);
 | 
			
		||||
 | 
			
		||||
#endif				/* _ASM_KPROBES_H */
 | 
			
		||||
#endif /* CONFIG_KPROBES */
 | 
			
		||||
#endif /* _ASM_KPROBES_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2232,7 +2232,7 @@ void per_cpu_trap_init(bool is_boot_cpu)
 | 
			
		|||
	if (!cpu_data[cpu].asid_cache)
 | 
			
		||||
		cpu_data[cpu].asid_cache = asid_first_version(cpu);
 | 
			
		||||
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
	BUG_ON(current->mm);
 | 
			
		||||
	enter_lazy_tlb(&init_mm, current);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,13 +21,17 @@
 | 
			
		|||
#ifndef _ASM_KPROBES_H
 | 
			
		||||
#define _ASM_KPROBES_H
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION	0xff
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
#include <linux/ptrace.h>
 | 
			
		||||
 | 
			
		||||
struct kprobe;
 | 
			
		||||
 | 
			
		||||
typedef unsigned char kprobe_opcode_t;
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION	0xff
 | 
			
		||||
#define MAX_INSN_SIZE 8
 | 
			
		||||
#define MAX_STACK_SIZE 128
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -47,4 +51,5 @@ extern int kprobe_exceptions_notify(struct notifier_block *self,
 | 
			
		|||
 | 
			
		||||
extern void arch_remove_kprobe(struct kprobe *p);
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_KPROBES */
 | 
			
		||||
#endif /* _ASM_KPROBES_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -589,7 +589,7 @@ static void __init smp_cpu_init(void)
 | 
			
		|||
	}
 | 
			
		||||
	printk(KERN_INFO "Initializing CPU#%d\n", cpu_id);
 | 
			
		||||
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
	BUG_ON(current->mm);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,3 +62,4 @@ generic-y += user.h
 | 
			
		|||
generic-y += vga.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,3 +67,4 @@ generic-y += user.h
 | 
			
		|||
generic-y += vga.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -319,7 +319,7 @@ EXCEPTION_ENTRY(_timer_handler)
 | 
			
		|||
	l.j    _ret_from_intr
 | 
			
		||||
	 l.nop
 | 
			
		||||
 | 
			
		||||
/* ---[ 0x600: Aligment exception ]-------------------------------------- */
 | 
			
		||||
/* ---[ 0x600: Alignment exception ]-------------------------------------- */
 | 
			
		||||
 | 
			
		||||
EXCEPTION_ENTRY(_alignment_handler)
 | 
			
		||||
	CLEAR_LWA_FLAG(r3)
 | 
			
		||||
| 
						 | 
				
			
			@ -331,8 +331,8 @@ EXCEPTION_ENTRY(_alignment_handler)
 | 
			
		|||
	 l.nop
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
EXCEPTION_ENTRY(_aligment_handler)
 | 
			
		||||
//        l.mfspr r2,r0,SPR_EEAR_BASE     /* Load the efective addres */
 | 
			
		||||
EXCEPTION_ENTRY(_alignment_handler)
 | 
			
		||||
//        l.mfspr r2,r0,SPR_EEAR_BASE     /* Load the effective address */
 | 
			
		||||
	l.addi	r2,r4,0
 | 
			
		||||
//        l.mfspr r5,r0,SPR_EPCR_BASE     /* Load the insn address */
 | 
			
		||||
	l.lwz   r5,PT_PC(r1)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -325,7 +325,7 @@ _dispatch_do_ipage_fault:
 | 
			
		|||
    .org 0x500
 | 
			
		||||
	EXCEPTION_HANDLE(_timer_handler)
 | 
			
		||||
 | 
			
		||||
/* ---[ 0x600: Aligment exception ]-------------------------------------- */
 | 
			
		||||
/* ---[ 0x600: Alignment exception ]-------------------------------------- */
 | 
			
		||||
    .org 0x600
 | 
			
		||||
	EXCEPTION_HANDLE(_alignment_handler)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -640,8 +640,8 @@ _flush_tlb:
 | 
			
		|||
 | 
			
		||||
/* ========================================[ cache ]=== */
 | 
			
		||||
 | 
			
		||||
	/* aligment here so we don't change memory offsets with
 | 
			
		||||
	 * memory controler defined
 | 
			
		||||
	/* alignment here so we don't change memory offsets with
 | 
			
		||||
	 * memory controller defined
 | 
			
		||||
	 */
 | 
			
		||||
	.align 0x2000
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,8 +19,8 @@
 | 
			
		|||
 | 
			
		||||
/* TODO
 | 
			
		||||
 *		- clean up __offset & stuff
 | 
			
		||||
 *		- change all 8192 aligment to PAGE !!!
 | 
			
		||||
 *		- recheck if all aligments are really needed
 | 
			
		||||
 *		- change all 8192 alignment to PAGE !!!
 | 
			
		||||
 *		- recheck if all alignments are really needed
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#  define LOAD_OFFSET  PAGE_OFFSET
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,3 +28,4 @@ generic-y += user.h
 | 
			
		|||
generic-y += vga.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += xor.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -279,7 +279,7 @@ smp_cpu_init(int cpunum)
 | 
			
		|||
	set_cpu_online(cpunum, true);
 | 
			
		||||
 | 
			
		||||
	/* Initialise the idle task for this CPU */
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
	BUG_ON(current->mm);
 | 
			
		||||
	enter_lazy_tlb(&init_mm, current);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ partition@1c00000 {
 | 
			
		|||
				label = "kernel";
 | 
			
		||||
				reg = <0x01c00000 0x002e0000>;
 | 
			
		||||
			};
 | 
			
		||||
			partiton@1ee0000 {
 | 
			
		||||
			partition@1ee0000 {
 | 
			
		||||
				label = "dtb";
 | 
			
		||||
				reg = <0x01ee0000 0x00020000>;
 | 
			
		||||
			};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,7 @@ extern struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT];
 | 
			
		|||
 | 
			
		||||
#ifndef __ASSEMBLY__
 | 
			
		||||
/*
 | 
			
		||||
 * ISA 3.0 partiton and process table entry format
 | 
			
		||||
 * ISA 3.0 partition and process table entry format
 | 
			
		||||
 */
 | 
			
		||||
struct prtb_entry {
 | 
			
		||||
	__be64 prtb0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,7 +109,7 @@ static inline unsigned int fh_send_nmi(unsigned int vcpu_mask)
 | 
			
		|||
#define FH_DTPROP_MAX_PROPLEN 32768
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * fh_partiton_get_dtprop - get a property from a guest device tree.
 | 
			
		||||
 * fh_partition_get_dtprop - get a property from a guest device tree.
 | 
			
		||||
 * @handle: handle of partition whose device tree is to be accessed
 | 
			
		||||
 * @dtpath_addr: physical address of device tree path to access
 | 
			
		||||
 * @propname_addr: physical address of name of property
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,8 @@
 | 
			
		|||
#ifndef _ASM_POWERPC_KPROBES_H
 | 
			
		||||
#define _ASM_POWERPC_KPROBES_H
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#ifdef __KERNEL__
 | 
			
		||||
/*
 | 
			
		||||
 *  Kernel Probes (KProbes)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -707,7 +707,7 @@ void start_secondary(void *unused)
 | 
			
		|||
	unsigned int cpu = smp_processor_id();
 | 
			
		||||
	int i, base;
 | 
			
		||||
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
 | 
			
		||||
	smp_store_cpu_info(cpu);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
#include <asm/page.h>
 | 
			
		||||
#include <asm/code-patching.h>
 | 
			
		||||
#include <linux/uaccess.h>
 | 
			
		||||
#include <linux/kprobes.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int patch_instruction(unsigned int *addr, unsigned int instr)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3034,7 +3034,7 @@ static void pnv_ioda_setup_pe_res(struct pnv_ioda_pe *pe,
 | 
			
		|||
/*
 | 
			
		||||
 * This function is supposed to be called on basis of PE from top
 | 
			
		||||
 * to bottom style. So the the I/O or MMIO segment assigned to
 | 
			
		||||
 * parent PE could be overrided by its child PEs if necessary.
 | 
			
		||||
 * parent PE could be overridden by its child PEs if necessary.
 | 
			
		||||
 */
 | 
			
		||||
static void pnv_ioda_setup_pe_seg(struct pnv_ioda_pe *pe)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1020,7 +1020,7 @@ static u64 enable_ddw(struct pci_dev *dev, struct device_node *pdn)
 | 
			
		|||
	/* check largest block * page size > max memory hotplug addr */
 | 
			
		||||
	max_addr = memory_hotplug_max();
 | 
			
		||||
	if (query.largest_available_block < (max_addr >> page_shift)) {
 | 
			
		||||
		dev_dbg(&dev->dev, "can't map partiton max 0x%llx with %u "
 | 
			
		||||
		dev_dbg(&dev->dev, "can't map partition max 0x%llx with %u "
 | 
			
		||||
			  "%llu-sized pages\n", max_addr,  query.largest_available_block,
 | 
			
		||||
			  1ULL << page_shift);
 | 
			
		||||
		goto out_failed;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1587,7 +1587,7 @@ extract_tbr (unsigned long insn,
 | 
			
		|||
#define CTX(op, xop)   (OP (op) | (((unsigned long)(xop)) & 0x7))
 | 
			
		||||
#define CTX_MASK CTX(0x3f, 0x7)
 | 
			
		||||
 | 
			
		||||
/* An User Context form instruction.  */
 | 
			
		||||
/* A User Context form instruction.  */
 | 
			
		||||
#define UCTX(op, xop)  (OP (op) | (((unsigned long)(xop)) & 0x1f))
 | 
			
		||||
#define UCTX_MASK UCTX(0x3f, 0x1f)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,11 @@
 | 
			
		|||
 * 2005-Dec	Used as a template for s390 by Mike Grundy
 | 
			
		||||
 *		<grundym@us.ibm.com>
 | 
			
		||||
 */
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION	0x0002
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
#include <linux/ptrace.h>
 | 
			
		||||
#include <linux/percpu.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +42,6 @@ struct pt_regs;
 | 
			
		|||
struct kprobe;
 | 
			
		||||
 | 
			
		||||
typedef u16 kprobe_opcode_t;
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION	0x0002
 | 
			
		||||
 | 
			
		||||
/* Maximum instruction size is 3 (16bit) halfwords: */
 | 
			
		||||
#define MAX_INSN_SIZE		0x0003
 | 
			
		||||
| 
						 | 
				
			
			@ -91,4 +95,5 @@ int probe_is_insn_relative_long(u16 *insn);
 | 
			
		|||
 | 
			
		||||
#define flush_insn_slot(p)	do { } while (0)
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_KPROBES */
 | 
			
		||||
#endif	/* _ASM_S390_KPROBES_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ void cpu_init(void)
 | 
			
		|||
	get_cpu_id(id);
 | 
			
		||||
	if (machine_has_cpu_mhz)
 | 
			
		||||
		update_cpu_mhz(NULL);
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
	BUG_ON(current->mm);
 | 
			
		||||
	enter_lazy_tlb(&init_mm, current);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -350,7 +350,7 @@ static void __add_vtimer(struct vtimer_list *timer, int periodic)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * add_virt_timer - add an oneshot virtual CPU timer
 | 
			
		||||
 * add_virt_timer - add a oneshot virtual CPU timer
 | 
			
		||||
 */
 | 
			
		||||
void add_virt_timer(struct vtimer_list *timer)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,3 +13,4 @@ generic-y += trace_clock.h
 | 
			
		|||
generic-y += xor.h
 | 
			
		||||
generic-y += serial.h
 | 
			
		||||
generic-y += word-at-a-time.h
 | 
			
		||||
generic-y += kprobes.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -336,7 +336,7 @@ void __init trap_init(void)
 | 
			
		|||
	set_except_vector(18, handle_dbe);
 | 
			
		||||
	flush_icache_range(DEBUG_VECTOR_BASE_ADDR, IRQ_VECTOR_BASE_ADDR);
 | 
			
		||||
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
	cpu_cache_init();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,16 @@
 | 
			
		|||
#ifndef __ASM_SH_KPROBES_H
 | 
			
		||||
#define __ASM_SH_KPROBES_H
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION	0xc33a
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
#include <linux/ptrace.h>
 | 
			
		||||
 | 
			
		||||
typedef insn_size_t kprobe_opcode_t;
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION	0xc33a
 | 
			
		||||
 | 
			
		||||
#define MAX_INSN_SIZE 16
 | 
			
		||||
#define MAX_STACK_SIZE 64
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,7 +99,7 @@ static inline void handle_one_irq(unsigned int irq)
 | 
			
		|||
			"mov	%0, r4		\n"
 | 
			
		||||
			"mov	r15, r8		\n"
 | 
			
		||||
			"jsr	@%1		\n"
 | 
			
		||||
			/* swith to the irq stack */
 | 
			
		||||
			/* switch to the irq stack */
 | 
			
		||||
			" mov	%2, r15		\n"
 | 
			
		||||
			/* restore the stack (ring zero) */
 | 
			
		||||
			"mov	r8, r15		\n"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -178,8 +178,8 @@ asmlinkage void start_secondary(void)
 | 
			
		|||
	struct mm_struct *mm = &init_mm;
 | 
			
		||||
 | 
			
		||||
	enable_mmu();
 | 
			
		||||
	atomic_inc(&mm->mm_count);
 | 
			
		||||
	atomic_inc(&mm->mm_users);
 | 
			
		||||
	mmgrab(mm);
 | 
			
		||||
	mmget(mm);
 | 
			
		||||
	current->active_mm = mm;
 | 
			
		||||
#ifdef CONFIG_MMU
 | 
			
		||||
	enter_lazy_tlb(mm, current);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,17 @@
 | 
			
		|||
#ifndef _SPARC64_KPROBES_H
 | 
			
		||||
#define _SPARC64_KPROBES_H
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/kprobes.h>
 | 
			
		||||
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION   0x91d02070 /* ta 0x70 */
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION_2 0x91d02071 /* ta 0x71 */
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KPROBES
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
#include <linux/percpu.h>
 | 
			
		||||
 | 
			
		||||
typedef u32 kprobe_opcode_t;
 | 
			
		||||
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION   0x91d02070 /* ta 0x70 */
 | 
			
		||||
#define BREAKPOINT_INSTRUCTION_2 0x91d02071 /* ta 0x71 */
 | 
			
		||||
#define MAX_INSN_SIZE 2
 | 
			
		||||
 | 
			
		||||
#define kretprobe_blacklist_size 0
 | 
			
		||||
| 
						 | 
				
			
			@ -48,4 +52,6 @@ int kprobe_exceptions_notify(struct notifier_block *self,
 | 
			
		|||
int kprobe_fault_handler(struct pt_regs *regs, int trapnr);
 | 
			
		||||
asmlinkage void __kprobes kprobe_trap(unsigned long trap_level,
 | 
			
		||||
				      struct pt_regs *regs);
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_KPROBES */
 | 
			
		||||
#endif /* _SPARC64_KPROBES_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ extern struct thread_info *current_set[NR_CPUS];
 | 
			
		|||
 * Flush windows so that the VM switch which follows
 | 
			
		||||
 * would not pull the stack from under us.
 | 
			
		||||
 *
 | 
			
		||||
 * SWITCH_ENTER and SWITH_DO_LAZY_FPU do not work yet (e.g. SMP does not work)
 | 
			
		||||
 * SWITCH_ENTER and SWITCH_DO_LAZY_FPU do not work yet (e.g. SMP does not work)
 | 
			
		||||
 * XXX WTF is the above comment? Found in late teen 2.4.x.
 | 
			
		||||
 */
 | 
			
		||||
#ifdef CONFIG_SMP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -93,7 +93,7 @@ void leon_cpu_pre_online(void *arg)
 | 
			
		|||
			     : "memory" /* paranoid */);
 | 
			
		||||
 | 
			
		||||
	/* Attach to the address space of init_task. */
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
 | 
			
		||||
	while (!cpumask_test_cpu(cpuid, &smp_commenced_mask))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -122,7 +122,7 @@ void smp_callin(void)
 | 
			
		|||
	current_thread_info()->new_child = 0;
 | 
			
		||||
 | 
			
		||||
	/* Attach to the address space of init_task. */
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
 | 
			
		||||
	/* inform the notifiers about the new cpu */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -93,7 +93,7 @@ void sun4d_cpu_pre_online(void *arg)
 | 
			
		|||
	show_leds(cpuid);
 | 
			
		||||
 | 
			
		||||
	/* Attach to the address space of init_task. */
 | 
			
		||||
	atomic_inc(&init_mm.mm_count);
 | 
			
		||||
	mmgrab(&init_mm);
 | 
			
		||||
	current->active_mm = &init_mm;
 | 
			
		||||
 | 
			
		||||
	local_ops->cache_all();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue