projects/linux·commit 17bb51d5

Merge branch 'akpm-incoming-2'

17bb51d5 · Linus Torvalds <[email protected]> · 2010-10-27 18:42:52 -07:00

* akpm-incoming-2: (139 commits)
  epoll: make epoll_wait() use the hrtimer range feature
  select: rename estimate_accuracy() to select_estimate_accuracy()
  Remove duplicate includes from many files
  ramoops: use the platform data structure instead of module params
  kernel/resource.c: handle reinsertion of an already-inserted resource
  kfifo: fix kfifo_alloc() to return a signed int value
  w1: don't allow arbitrary users to remove w1 devices
  alpha: remove dma64_addr_t usage
  mips: remove dma64_addr_t usage
  sparc: remove dma64_addr_t usage
  fuse: use release_pages()
  taskstats: use real microsecond granularity for CPU times
  taskstats: split fill_pid function
  taskstats: separate taskstats commands
  delayacct: align to 8 byte boundary on 64-bit systems
  delay-accounting: reimplement -c for getdelays.c to report information on a target command
  namespaces Kconfig: move namespace menu location after the cgroup
  namespaces Kconfig: remove the cgroup device whitelist experimental tag
  namespaces Kconfig: remove pointless cgroup dependency
  namespaces Kconfig: make namespace a submenu
  ...
Commit
17bb51d56cdc8cbf252031db3107de034cfeb44c
Parents
0671b767 · 95aac7b1

Merge commit. Changes below are compared with the first parent: 0671b767.

Changes

165 files changed · +4758 −1291

FileStatusAddDelContent
Documentation/accounting/getdelays.cmodified+36−2View file
Documentation/cgroups/cgroups.txtmodified+12−2View file
Documentation/feature-removal-schedule.txtmodified+17−0View file
Documentation/filesystems/proc.txtmodified+14−3View file
Documentation/sysctl/vm.txtmodified+8−4View file
arch/alpha/kernel/pci_iommu.cmodified+2−2View file
arch/alpha/kernel/ptrace.cmodified+4−3View file
arch/arm/kernel/ptrace.cmodified+15−13View file
arch/arm/mach-tegra/timer.cmodified+0−1View file
arch/arm/mm/highmem.cmodified+2−1View file
arch/arm/plat-nomadik/include/plat/ste_dma40.hmodified+0−1View file
arch/avr32/kernel/ptrace.cmodified+6−5View file
arch/blackfin/kernel/ptrace.cmodified+9−7View file
arch/cris/arch-v10/kernel/ptrace.cmodified+10−10View file
arch/cris/arch-v32/kernel/ptrace.cmodified+8−8View file
arch/frv/kernel/ptrace.cmodified+15−17View file
arch/frv/mm/highmem.cmodified+2−1View file
arch/h8300/kernel/ptrace.cmodified+17−16View file
arch/ia64/include/asm/cputime.hmodified+3−3View file
arch/ia64/kernel/ptrace.cmodified+2−1View file
arch/m32r/kernel/ptrace.cmodified+6−5View file
arch/m68k/kernel/ptrace.cmodified+26−25View file
arch/m68knommu/kernel/ptrace.cmodified+27−30View file
arch/microblaze/kernel/ptrace.cmodified+3−2View file
arch/mips/include/asm/pci/bridge.hmodified+1−1View file
arch/mips/kernel/ptrace.cmodified+13−12View file
arch/mips/mm/highmem.cmodified+2−1View file
arch/mn10300/include/asm/highmem.hmodified+3−1View file
arch/mn10300/kernel/ptrace.cmodified+10−10View file
arch/parisc/kernel/ptrace.cmodified+7−6View file
arch/powerpc/include/asm/cputime.hmodified+6−6View file
arch/powerpc/kernel/ptrace.cmodified+34−32View file
arch/powerpc/mm/highmem.cmodified+3−1View file
arch/powerpc/sysdev/fsl_rio.cmodified+47−29View file
arch/s390/include/asm/cputime.hmodified+5−5View file
arch/s390/kernel/ptrace.cmodified+2−1View file
arch/score/kernel/ptrace.cmodified+4−3View file
arch/sh/kernel/ptrace_32.cmodified+25−20View file
arch/sh/kernel/ptrace_64.cmodified+16−9View file
arch/sparc/include/asm/io_32.hmodified+31−0View file
arch/sparc/include/asm/io_64.hmodified+31−0View file
arch/sparc/include/asm/pci_64.hmodified+1−1View file
arch/sparc/kernel/ptrace_32.cmodified+22−35View file
arch/sparc/kernel/ptrace_64.cmodified+8−7View file
arch/sparc/mm/highmem.cmodified+3−1View file
arch/tile/Kconfigmodified+3−0View file
arch/tile/kernel/ptrace.cmodified+8−5View file
arch/tile/kernel/setup.cmodified+0−2View file
arch/tile/mm/highmem.cmodified+2−1View file
arch/um/kernel/ptrace.cmodified+11−12View file
arch/um/sys-i386/ptrace.cmodified+2−2View file
arch/um/sys-x86_64/ptrace.cmodified+5−6View file
arch/x86/kernel/ptrace.cmodified+8−9View file
arch/x86/mm/highmem_32.cmodified+2−1View file
arch/x86/mm/init_64.cmodified+0−1View file
arch/x86/mm/iomap_32.cmodified+2−1View file
arch/x86/xen/enlighten.cmodified+0−1View file
arch/xtensa/kernel/ptrace.cmodified+8−6View file
drivers/char/applicom.cmodified+1−0View file
drivers/char/hvc_console.cmodified+0−1View file
drivers/char/ip2/Makefilemodified+1−1View file
drivers/char/ipmi/Makefilemodified+1−1View file
drivers/char/ipmi/ipmi_devintf.cmodified+2−2View file
drivers/char/ipmi/ipmi_msghandler.cmodified+2−2View file
drivers/char/ipmi/ipmi_si_intf.cmodified+7−7View file
drivers/char/mmtimer.cmodified+32−28View file
drivers/char/mwave/Makefilemodified+2−2View file
drivers/char/mxser.cmodified+4−0View file
drivers/char/pcmcia/ipwireless/Makefilemodified+1−1View file
drivers/char/ppdev.cmodified+1−0View file
drivers/char/ramoops.cmodified+28−2View file
drivers/char/rio/Makefilemodified+1−1View file
drivers/char/rocket.cmodified+4−1View file
drivers/char/synclink_gt.cmodified+126−16View file
drivers/char/vt_ioctl.cmodified+6−5View file
drivers/firmware/dmi_scan.cmodified+31−1View file
drivers/gpio/74x164.cadded+182−0View file
drivers/gpio/Kconfigmodified+28−0View file
drivers/gpio/Makefilemodified+3−0View file
drivers/gpio/adp5588-gpio.cmodified+256−21View file
drivers/gpio/basic_mmio_gpio.cadded+297−0View file
drivers/gpio/langwell_gpio.cmodified+85−4View file
drivers/gpio/pch_gpio.cadded+312−0View file
drivers/gpio/timbgpio.cmodified+19−2View file
drivers/media/IR/lirc_dev.cmodified+0−1View file
drivers/platform/x86/intel_pmic_gpio.cmodified+0−1View file
drivers/rapidio/rio-driver.cmodified+1−1View file
drivers/rapidio/rio-scan.cmodified+85−102View file
drivers/rapidio/rio-sysfs.cmodified+19−7View file
drivers/rapidio/rio.cmodified+291−39View file
drivers/rapidio/rio.hmodified+5−0View file
drivers/rapidio/switches/Kconfigmodified+7−0View file
drivers/rapidio/switches/Makefilemodified+1−0View file
drivers/rapidio/switches/idt_gen2.cadded+447−0View file
drivers/rapidio/switches/idtcps.cmodified+10−0View file
drivers/rapidio/switches/tsi568.cmodified+10−5View file
drivers/rapidio/switches/tsi57x.cmodified+6−1View file
drivers/rtc/Kconfigmodified+11−1View file
drivers/rtc/Makefilemodified+1−0View file
drivers/rtc/class.cmodified+3−1View file
drivers/rtc/rtc-bfin.cmodified+28−15View file
drivers/rtc/rtc-ds3232.cmodified+181−0View file
drivers/rtc/rtc-jz4740.cmodified+40−5View file
drivers/rtc/rtc-lpc32xx.cadded+414−0View file
drivers/rtc/rtc-omap.cmodified+7−5View file
drivers/rtc/rtc-s3c.cmodified+52−40View file
drivers/video/fbmem.cmodified+21−39View file
drivers/video/gbefb.cmodified+4−2View file
drivers/video/matrox/matroxfb_DAC1064.cmodified+1−4View file
drivers/video/matrox/matroxfb_maven.cmodified+1−1View file
drivers/video/omap/blizzard.cmodified+1−1View file
drivers/video/savage/savagefb-i2c.cmodified+9−0View file
drivers/w1/w1.cmodified+4−4View file
fs/Kconfig.binfmtmodified+2−2View file
fs/eventpoll.cmodified+19−16View file
fs/exec.cmodified+101−67View file
fs/fuse/dev.cmodified+1−6View file
fs/isofs/inode.cmodified+40−0View file
fs/proc/base.cmodified+4−4View file
fs/proc/softirqs.cmodified+2−2View file
fs/proc/stat.cmodified+3−11View file
fs/proc/task_mmu.cmodified+6−0View file
fs/select.cmodified+3−3View file
include/asm-generic/cputime.hmodified+3−3View file
include/asm-generic/gpio.hmodified+2−2View file
include/linux/basic_mmio_gpio.hadded+20−0View file
include/linux/cgroup.hmodified+4−0View file
include/linux/fb.hmodified+6−0View file
include/linux/highmem.hmodified+30−21View file
include/linux/i2c/adp5588.hmodified+19−2View file
include/linux/init_task.hmodified+2−2View file
include/linux/kernel_stat.hmodified+16−2View file
include/linux/kfifo.hmodified+21−12View file
include/linux/poll.hmodified+2−0View file
include/linux/ptrace.hmodified+8−4View file
include/linux/ramoops.hadded+15−0View file
include/linux/rio.hmodified+16−1View file
include/linux/rio_ids.hmodified+2−0View file
include/linux/rio_regs.hmodified+13−5View file
include/linux/sched.hmodified+12−4View file
include/linux/spi/74x164.hadded+11−0View file
include/linux/synclink.hmodified+5−0View file
include/linux/syscalls.hmodified+2−1View file
include/linux/tracehook.hmodified+1−1View file
include/linux/virtio_9p.hmodified+0−1View file
init/Kconfigmodified+56−61View file
ipc/compat.cmodified+6−0View file
ipc/compat_mq.cmodified+5−0View file
ipc/shm.cmodified+42−21View file
kernel/cgroup.cmodified+100−29View file
kernel/cgroup_freezer.cmodified+32−40View file
kernel/cred.cmodified+1−3View file
kernel/exit.cmodified+2−0View file
kernel/fork.cmodified+2−0View file
kernel/irq/irqdesc.cmodified+15−0View file
kernel/ns_cgroup.cmodified+8−0View file
kernel/ptrace.cmodified+21−15View file
kernel/resource.cmodified+2−0View file
kernel/signal.cmodified+4−1View file
kernel/taskstats.cmodified+104−68View file
kernel/trace/trace_kprobe.cmodified+0−1View file
kernel/tsacct.cmodified+4−6View file
mm/highmem.cmodified+5−1View file
mm/memcontrol.cmodified+296−110View file
mm/swap.cmodified+1−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/accounting/getdelays.c

View file
diff --git a/Documentation/accounting/getdelays.c b/Documentation/accounting/getdelays.c
index 6e25c26..a2976a6 100644
--- a/Documentation/accounting/getdelays.c
+++ b/Documentation/accounting/getdelays.c
@@ -21,6 +21,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
+#include <sys/wait.h>
#include <signal.h>
#include <linux/genetlink.h>
@@ -266,11 +267,13 @@ int main(int argc, char *argv[])
int containerset = 0;
char containerpath[1024];
int cfd = 0;
+ int forking = 0;
+ sigset_t sigset;
struct msgtemplate msg;
- while (1) {
- c = getopt(argc, argv, "qdiw:r:m:t:p:vlC:");
+ while (!forking) {
+ c = getopt(argc, argv, "qdiw:r:m:t:p:vlC:c:");
if (c < 0)
break;
@@ -319,6 +322,28 @@ int main(int argc, char *argv[])
err(1, "Invalid pid\n");
cmd_type = TASKSTATS_CMD_ATTR_PID;
break;
+ case 'c':
+
+ /* Block SIGCHLD for sigwait() later */
+ if (sigemptyset(&sigset) == -1)
+ err(1, "Failed to empty sigset");
+ if (sigaddset(&sigset, SIGCHLD))
+ err(1, "Failed to set sigchld in sigset");
+ sigprocmask(SIG_BLOCK, &sigset, NULL);
+
+ /* fork/exec a child */
+ tid = fork();
+ if (tid < 0)
+ err(1, "Fork failed\n");
+ if (tid == 0)
+ if (execvp(argv[optind - 1],
+ &argv[optind - 1]) < 0)
+ exit(-1);
+
+ /* Set the command type and avoid further processing */
+ cmd_type = TASKSTATS_CMD_ATTR_PID;
+ forking = 1;
+ break;
case 'v':
printf("debug on\n");
dbg = 1;
@@ -370,6 +395,15 @@ int main(int argc, char *argv[])
goto err;
}
+ /*
+ * If we forked a child, wait for it to exit. Cannot use waitpid()
+ * as all the delicious data would be reaped as part of the wait
+ */
+ if (tid && forking) {
+ int sig_received;
+ sigwait(&sigset, &sig_received);
+ }
+
if (tid) {
rc = send_cmd(nl_sd, id, mypid, TASKSTATS_CMD_GET,
cmd_type, &tid, sizeof(__u32));

Documentation/cgroups/cgroups.txt

View file
diff --git a/Documentation/cgroups/cgroups.txt b/Documentation/cgroups/cgroups.txt
index b34823f..190018b 100644
--- a/Documentation/cgroups/cgroups.txt
+++ b/Documentation/cgroups/cgroups.txt
@@ -18,7 +18,8 @@ CONTENTS:
1.2 Why are cgroups needed ?
1.3 How are cgroups implemented ?
1.4 What does notify_on_release do ?
- 1.5 How do I use cgroups ?
+ 1.5 What does clone_children do ?
+ 1.6 How do I use cgroups ?
2. Usage Examples and Syntax
2.1 Basic Usage
2.2 Attaching processes
@@ -293,7 +294,16 @@ notify_on_release in the root cgroup at system boot is disabled
value of their parents notify_on_release setting. The default value of
a cgroup hierarchy's release_agent path is empty.
-1.5 How do I use cgroups ?
+1.5 What does clone_children do ?
+---------------------------------
+
+If the clone_children flag is enabled (1) in a cgroup, then all
+cgroups created beneath will call the post_clone callbacks for each
+subsystem of the newly created cgroup. Usually when this callback is
+implemented for a subsystem, it copies the values of the parent
+subsystem, this is the case for the cpuset.
+
+1.6 How do I use cgroups ?
--------------------------
To start a new job that is to be contained within a cgroup, using

Documentation/feature-removal-schedule.txt

View file
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index d2af87b..f3da8c0 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -526,6 +526,23 @@ Who: FUJITA Tomonori <[email protected]>
----------------------------
+What: namespace cgroup (ns_cgroup)
+When: 2.6.38
+Why: The ns_cgroup leads to some problems:
+ * cgroup creation is out-of-control
+ * cgroup name can conflict when pids are looping
+ * it is not possible to have a single process handling
+ a lot of namespaces without falling in a exponential creation time
+ * we may want to create a namespace without creating a cgroup
+
+ The ns_cgroup is replaced by a compatibility flag 'clone_children',
+ where a newly created cgroup will copy the parent cgroup values.
+ The userspace has to manually create a cgroup and add a task to
+ the 'tasks' file.
+Who: Daniel Lezcano <[email protected]>
+
+----------------------------
+
What: iwlwifi disable_hw_scan module parameters
When: 2.6.40
Why: Hareware scan is the prefer method for iwlwifi devices for

Documentation/filesystems/proc.txt

View file
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index a563b74..e73df27 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -136,6 +136,7 @@ Table 1-1: Process specific entries in /proc
statm Process memory status information
status Process status in human readable form
wchan If CONFIG_KALLSYMS is set, a pre-decoded wchan
+ pagemap Page table
stack Report full stack trace, enable via CONFIG_STACKTRACE
smaps a extension based on maps, showing the memory consumption of
each mapping
@@ -370,6 +371,7 @@ Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 892 kB
+Anonymous: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
@@ -378,9 +380,15 @@ The first of these lines shows the same information as is displayed for the
mapping in /proc/PID/maps. The remaining lines show the size of the mapping
(size), the amount of the mapping that is currently resident in RAM (RSS), the
process' proportional share of this mapping (PSS), the number of clean and
-dirty shared pages in the mapping, and the number of clean and dirty private
-pages in the mapping. The "Referenced" indicates the amount of memory
-currently marked as referenced or accessed.
+dirty private pages in the mapping. Note that even a page which is part of a
+MAP_SHARED mapping, but has only a single pte mapped, i.e. is currently used
+by only one process, is accounted as private and not as shared. "Referenced"
+indicates the amount of memory currently marked as referenced or accessed.
+"Anonymous" shows the amount of memory that does not belong to any file. Even
+a mapping associated with a file may contain anonymous pages: when MAP_PRIVATE
+and a page is modified, the file page is replaced by a private anonymous copy.
+"Swap" shows how much would-be-anonymous memory is also used, but out on
+swap.
This file is only present if the CONFIG_MMU kernel configuration option is
enabled.
@@ -397,6 +405,9 @@ To clear the bits for the file mapped pages associated with the process
> echo 3 > /proc/PID/clear_refs
Any other value written to /proc/PID/clear_refs will have no effect.
+The /proc/pid/pagemap gives the PFN, which can be used to find the pageflags
+using /proc/kpageflags and number of times a page is mapped using
+/proc/kpagecount. For detailed explanation, see Documentation/vm/pagemap.txt.
1.2 Kernel data
---------------

Documentation/sysctl/vm.txt

View file
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
index b606c2c..30289fa 100644
--- a/Documentation/sysctl/vm.txt
+++ b/Documentation/sysctl/vm.txt
@@ -80,8 +80,10 @@ dirty_background_bytes
Contains the amount of dirty memory at which the pdflush background writeback
daemon will start writeback.
-If dirty_background_bytes is written, dirty_background_ratio becomes a function
-of its value (dirty_background_bytes / the amount of dirtyable system memory).
+Note: dirty_background_bytes is the counterpart of dirty_background_ratio. Only
+one of them may be specified at a time. When one sysctl is written it is
+immediately taken into account to evaluate the dirty memory limits and the
+other appears as 0 when read.
==============================================================
@@ -97,8 +99,10 @@ dirty_bytes
Contains the amount of dirty memory at which a process generating disk writes
will itself start writeback.
-If dirty_bytes is written, dirty_ratio becomes a function of its value
-(dirty_bytes / the amount of dirtyable system memory).
+Note: dirty_bytes is the counterpart of dirty_ratio. Only one of them may be
+specified at a time. When one sysctl is written it is immediately taken into
+account to evaluate the dirty memory limits and the other appears as 0 when
+read.
Note: the minimum value allowed for dirty_bytes is two pages (in bytes); any
value lower than this limit will be ignored and the old configuration will be

arch/alpha/kernel/pci_iommu.c

View file
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c
index d1dbd9a..022c274 100644
--- a/arch/alpha/kernel/pci_iommu.c
+++ b/arch/alpha/kernel/pci_iommu.c
@@ -223,7 +223,7 @@ iommu_arena_free(struct pci_iommu_arena *arena, long ofs, long n)
*/
static int pci_dac_dma_supported(struct pci_dev *dev, u64 mask)
{
- dma64_addr_t dac_offset = alpha_mv.pci_dac_offset;
+ dma_addr_t dac_offset = alpha_mv.pci_dac_offset;
int ok = 1;
/* If this is not set, the machine doesn't support DAC at all. */
@@ -756,7 +756,7 @@ static void alpha_pci_unmap_sg(struct device *dev, struct scatterlist *sg,
spin_lock_irqsave(&arena->lock, flags);
for (end = sg + nents; sg < end; ++sg) {
- dma64_addr_t addr;
+ dma_addr_t addr;
size_t size;
long npages, ofs;
dma_addr_t tend;

arch/alpha/kernel/ptrace.c

View file
diff --git a/arch/alpha/kernel/ptrace.c b/arch/alpha/kernel/ptrace.c
index baa9036..e2af5eb 100644
--- a/arch/alpha/kernel/ptrace.c
+++ b/arch/alpha/kernel/ptrace.c
@@ -269,7 +269,8 @@ void ptrace_disable(struct task_struct *child)
user_disable_single_step(child);
}
-long arch_ptrace(struct task_struct *child, long request, long addr, long data)
+long arch_ptrace(struct task_struct *child, long request,
+ unsigned long addr, unsigned long data)
{
unsigned long tmp;
size_t copied;
@@ -292,7 +293,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
case PTRACE_PEEKUSR:
force_successful_syscall_return();
ret = get_reg(child, addr);
- DBG(DBG_MEM, ("peek $%ld->%#lx\n", addr, ret));
+ DBG(DBG_MEM, ("peek $%lu->%#lx\n", addr, ret));
break;
/* When I and D space are separate, this will have to be fixed. */
@@ -302,7 +303,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
break;
case PTRACE_POKEUSR: /* write the specified register */
- DBG(DBG_MEM, ("poke $%ld<-%#lx\n", addr, data));
+ DBG(DBG_MEM, ("poke $%lu<-%#lx\n", addr, data));
ret = put_reg(child, addr, data);
break;
default:

arch/arm/kernel/ptrace.c

View file
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
index e0cb637..3e97483 100644
--- a/arch/arm/kernel/ptrace.c
+++ b/arch/arm/kernel/ptrace.c
@@ -1075,13 +1075,15 @@ out:
}
#endif
-long arch_ptrace(struct task_struct *child, long request, long addr, long data)
+long arch_ptrace(struct task_struct *child, long request,
+ unsigned long addr, unsigned long data)
{
int ret;
+ unsigned long __user *datap = (unsigned long __user *) data;
switch (request) {
case PTRACE_PEEKUSR:
- ret = ptrace_read_user(child, addr, (unsigned long __user *)data);
+ ret = ptrace_read_user(child, addr, datap);
break;
case PTRACE_POKEUSR:
@@ -1089,34 +1091,34 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
break;
case PTRACE_GETREGS:
- ret = ptrace_getregs(child, (void __user *)data);
+ ret = ptrace_getregs(child, datap);
break;
case PTRACE_SETREGS:
- ret = ptrace_setregs(child, (void __user *)data);
+ ret = ptrace_setregs(child, datap);
break;
case PTRACE_GETFPREGS:
- ret = ptrace_getfpregs(child, (void __user *)data);
+ ret = ptrace_getfpregs(child, datap);
break;
case PTRACE_SETFPREGS:
- ret = ptrace_setfpregs(child, (void __user *)data);
+ ret = ptrace_setfpregs(child, datap);
break;
#ifdef CONFIG_IWMMXT
case PTRACE_GETWMMXREGS:
- ret = ptrace_getwmmxregs(child, (void __user *)data);
+ ret = ptrace_getwmmxregs(child, datap);
break;
case PTRACE_SETWMMXREGS:
- ret = ptrace_setwmmxregs(child, (void __user *)data);
+ ret = ptrace_setwmmxregs(child, datap);
break;
#endif
case PTRACE_GET_THREAD_AREA:
ret = put_user(task_thread_info(child)->tp_value,
- (unsigned long __user *) data);
+ datap);
break;
case PTRACE_SET_SYSCALL:
@@ -1126,21 +1128,21 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
#ifdef CONFIG_CRUNCH
case PTRACE_GETCRUNCHREGS:
- ret = ptrace_getcrunchregs(child, (void __user *)data);
+ ret = ptrace_getcrunchregs(child, datap);
break;
case PTRACE_SETCRUNCHREGS:
- ret = ptrace_setcrunchregs(child, (void __user *)data);
+ ret = ptrace_setcrunchregs(child, datap);
break;
#endif
#ifdef CONFIG_VFP
case PTRACE_GETVFPREGS:
- ret = ptrace_getvfpregs(child, (void __user *)data);
+ ret = ptrace_getvfpregs(child, datap);
break;
case PTRACE_SETVFPREGS:
- ret = ptrace_setvfpregs(child, (void __user *)data);
+ ret = ptrace_setvfpregs(child, datap);
break;
#endif

arch/arm/mach-tegra/timer.c

View file
diff --git a/arch/arm/mach-tegra/timer.c b/arch/arm/mach-tegra/timer.c
index 2f42021..9057d6f 100644
--- a/arch/arm/mach-tegra/timer.c
+++ b/arch/arm/mach-tegra/timer.c
@@ -28,7 +28,6 @@
#include <linux/cnt32_to_63.h>
#include <asm/mach/time.h>
-#include <asm/mach/time.h>
#include <asm/localtimer.h>
#include <mach/iomap.h>

arch/arm/mm/highmem.c

View file
diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c
index c00f119..c435fd9 100644
--- a/arch/arm/mm/highmem.c
+++ b/arch/arm/mm/highmem.c
@@ -89,7 +89,7 @@ void __kunmap_atomic(void *kvaddr)
int idx, type;
if (kvaddr >= (void *)FIXADDR_START) {
- type = kmap_atomic_idx_pop();
+ type = kmap_atomic_idx();
idx = type + KM_TYPE_NR * smp_processor_id();
if (cache_is_vivt())
@@ -101,6 +101,7 @@ void __kunmap_atomic(void *kvaddr)
#else
(void) idx; /* to kill a warning */
#endif
+ kmap_atomic_idx_pop();
} else if (vaddr >= PKMAP_ADDR(0) && vaddr < PKMAP_ADDR(LAST_PKMAP)) {
/* this address was obtained through kmap_high_get() */
kunmap_high(pte_page(pkmap_page_table[PKMAP_NR(vaddr)]));

arch/arm/plat-nomadik/include/plat/ste_dma40.h

View file
diff --git a/arch/arm/plat-nomadik/include/plat/ste_dma40.h b/arch/arm/plat-nomadik/include/plat/ste_dma40.h
index 5fbde4b..93a8126 100644
--- a/arch/arm/plat-nomadik/include/plat/ste_dma40.h
+++ b/arch/arm/plat-nomadik/include/plat/ste_dma40.h
@@ -14,7 +14,6 @@
#include <linux/dmaengine.h>
#include <linux/workqueue.h>
#include <linux/interrupt.h>
-#include <linux/dmaengine.h>
/* dev types for memcpy */
#define STEDMA40_DEV_DST_MEMORY (-1)

arch/avr32/kernel/ptrace.c

View file
diff --git a/arch/avr32/kernel/ptrace.c b/arch/avr32/kernel/ptrace.c
index 5e73c25..4aedcab 100644
--- a/arch/avr32/kernel/ptrace.c
+++ b/arch/avr32/kernel/ptrace.c
@@ -146,9 +146,11 @@ static int ptrace_setregs(struct task_struct *tsk, const void __user *uregs)
return ret;
}
-long arch_ptrace(struct task_struct *child, long request, long addr, long data)
+long arch_ptrace(struct task_struct *child, long request,
+ unsigned long addr, unsigned long data)
{
int ret;
+ void __user *datap = (void __user *) data;
switch (request) {
/* Read the word at location addr in the child process */
@@ -158,8 +160,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
break;
case PTRACE_PEEKUSR:
- ret = ptrace_read_user(child, addr,
- (unsigned long __user *)data);
+ ret = ptrace_read_user(child, addr, datap);
break;
/* Write the word in data at location addr */
@@ -173,11 +174,11 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
break;
case PTRACE_GETREGS:
- ret = ptrace_getregs(child, (void __user *)data);
+ ret = ptrace_getregs(child, datap);
break;
case PTRACE_SETREGS:
- ret = ptrace_setregs(child, (const void __user *)data);
+ ret = ptrace_setregs(child, datap);
break;
default:

arch/blackfin/kernel/ptrace.c

View file
diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c
index b358393..75089f8 100644
--- a/arch/blackfin/kernel/ptrace.c
+++ b/arch/blackfin/kernel/ptrace.c
@@ -38,12 +38,13 @@
* Get contents of register REGNO in task TASK.
*/
static inline long
-get_reg(struct task_struct *task, long regno, unsigned long __user *datap)
+get_reg(struct task_struct *task, unsigned long regno,
+ unsigned long __user *datap)
{
long tmp;
struct pt_regs *regs = task_pt_regs(task);
- if (regno & 3 || regno > PT_LAST_PSEUDO || regno < 0)
+ if (regno & 3 || regno > PT_LAST_PSEUDO)
return -EIO;
switch (regno) {
@@ -74,11 +75,11 @@ get_reg(struct task_struct *task, long regno, unsigned long __user *datap)
* Write contents of register REGNO in task TASK.
*/
static inline int
-put_reg(struct task_struct *task, long regno, unsigned long data)
+put_reg(struct task_struct *task, unsigned long regno, unsigned long data)
{
struct pt_regs *regs = task_pt_regs(task);
- if (regno & 3 || regno > PT_LAST_PSEUDO || regno < 0)
+ if (regno & 3 || regno > PT_LAST_PSEUDO)
return -EIO;
switch (regno) {
@@ -240,7 +241,8 @@ void user_disable_single_step(struct task_struct *child)
clear_tsk_thread_flag(child, TIF_SINGLESTEP);
}
-long arch_ptrace(struct task_struct *child, long request, long addr, long data)
+long arch_ptrace(struct task_struct *child, long request,
+ unsigned long addr, unsigned long data)
{
int ret;
unsigned long __user *datap = (unsigned long __user *)data;
@@ -368,14 +370,14 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
return copy_regset_to_user(child, &user_bfin_native_view,
REGSET_GENERAL,
0, sizeof(struct pt_regs),
- (void __user *)data);
+ datap);
case PTRACE_SETREGS:
pr_debug("ptrace: PTRACE_SETREGS\n");
return copy_regset_from_user(child, &user_bfin_native_view,
REGSET_GENERAL,
0, sizeof(struct pt_regs),
- (const void __user *)data);
+ datap);
case_default:
default:

arch/cris/arch-v10/kernel/ptrace.c

View file
diff --git a/arch/cris/arch-v10/kernel/ptrace.c b/arch/cris/arch-v10/kernel/ptrace.c
index e70c804..320065f 100644
--- a/arch/cris/arch-v10/kernel/ptrace.c
+++ b/arch/cris/arch-v10/kernel/ptrace.c
@@ -76,9 +76,11 @@ ptrace_disable(struct task_struct *child)
* (in user space) where the result of the ptrace call is written (instead of
* being returned).
*/
-long arch_ptrace(struct task_struct *child, long request, long addr, long data)
+long arch_ptrace(struct task_struct *child, long request,
+ unsigned long addr, unsigned long data)
{
int ret;
+ unsigned int regno = addr >> 2;
unsigned long __user *datap = (unsigned long __user *)data;
switch (request) {
@@ -93,10 +95,10 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
unsigned long tmp;
ret = -EIO;
- if ((addr & 3) || addr < 0 || addr > PT_MAX << 2)
+ if ((addr & 3) || regno > PT_MAX)
break;
- tmp = get_reg(child, addr >> 2);
+ tmp = get_reg(child, regno);
ret = put_user(tmp, datap);
break;
}
@@ -110,19 +112,17 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
/* Write the word at location address in the USER area. */
case PTRACE_POKEUSR:
ret = -EIO;
- if ((addr & 3) || addr < 0 || addr > PT_MAX << 2)
+ if ((addr & 3) || regno > PT_MAX)
break;
- addr >>= 2;
-
- if (addr == PT_DCCR) {
+ if (regno == PT_DCCR) {
/* don't allow the tracing process to change stuff like
* interrupt enable, kernel/user bit, dma enables etc.
*/
data &= DCCR_MASK;
data |= get_reg(child, PT_DCCR) & ~DCCR_MASK;
}
- if (put_reg(child, addr, data))
+ if (put_reg(child, regno, data))
break;
ret = 0;
break;
@@ -141,7 +141,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
break;
}
- data += sizeof(long);
+ datap++;
}
break;
@@ -165,7 +165,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
}
put_reg(child, i, tmp);
- data += sizeof(long);
+ datap++;
}
break;

arch/cris/arch-v32/kernel/ptrace.c

View file
diff --git a/arch/cris/arch-v32/kernel/ptrace.c b/arch/cris/arch-v32/kernel/ptrace.c
index f4ebd1e..511ece9 100644
--- a/arch/cris/arch-v32/kernel/ptrace.c
+++ b/arch/cris/arch-v32/kernel/ptrace.c
@@ -126,9 +126,11 @@ ptrace_disable(struct task_struct *child)
}
-long arch_ptrace(struct task_struct *child, long request, long addr, long data)
+long arch_ptrace(struct task_struct *child, long request,
+ unsigned long addr, unsigned long data)
{
int ret;
+ unsigned int regno = addr >> 2;
unsigned long __user *datap = (unsigned long __user *)data;
switch (request) {
@@ -163,10 +165,10 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
unsigned long tmp;
ret = -EIO;
- if ((addr & 3) || addr < 0 || addr > PT_MAX << 2)
+ if ((addr & 3) || regno > PT_MAX)
break;
- tmp = get_reg(child, addr >> 2);

This diff is incomplete. Download the complete patch.

arch/frv/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/frv/mm/highmem.c

View file

This diff is incomplete. Download the complete patch.

arch/h8300/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/ia64/include/asm/cputime.h

View file

This diff is incomplete. Download the complete patch.

arch/ia64/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/m32r/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/m68k/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/m68knommu/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/microblaze/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/mips/include/asm/pci/bridge.h

View file

This diff is incomplete. Download the complete patch.

arch/mips/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/mips/mm/highmem.c

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/highmem.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/parisc/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/include/asm/cputime.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/mm/highmem.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/sysdev/fsl_rio.c

View file

This diff is incomplete. Download the complete patch.

arch/s390/include/asm/cputime.h

View file

This diff is incomplete. Download the complete patch.

arch/s390/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/score/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/sh/kernel/ptrace_32.c

View file

This diff is incomplete. Download the complete patch.

arch/sh/kernel/ptrace_64.c

View file

This diff is incomplete. Download the complete patch.

arch/sparc/include/asm/io_32.h

View file

This diff is incomplete. Download the complete patch.

arch/sparc/include/asm/io_64.h

View file

This diff is incomplete. Download the complete patch.

arch/sparc/include/asm/pci_64.h

View file

This diff is incomplete. Download the complete patch.

arch/sparc/kernel/ptrace_32.c

View file

This diff is incomplete. Download the complete patch.

arch/sparc/kernel/ptrace_64.c

View file

This diff is incomplete. Download the complete patch.

arch/sparc/mm/highmem.c

View file

This diff is incomplete. Download the complete patch.

arch/tile/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/tile/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/tile/kernel/setup.c

View file

This diff is incomplete. Download the complete patch.

arch/tile/mm/highmem.c

View file

This diff is incomplete. Download the complete patch.

arch/um/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/um/sys-i386/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/um/sys-x86_64/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/mm/highmem_32.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/mm/init_64.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/mm/iomap_32.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/xen/enlighten.c

View file

This diff is incomplete. Download the complete patch.

arch/xtensa/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/applicom.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/hvc_console.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/ip2/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/char/ipmi/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/char/ipmi/ipmi_devintf.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/ipmi/ipmi_msghandler.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/ipmi/ipmi_si_intf.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/mmtimer.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/mwave/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/char/mxser.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/pcmcia/ipwireless/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/char/ppdev.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/ramoops.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/rio/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/char/rocket.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/synclink_gt.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/vt_ioctl.c

View file

This diff is incomplete. Download the complete patch.

drivers/firmware/dmi_scan.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/74x164.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/adp5588-gpio.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/basic_mmio_gpio.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/langwell_gpio.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/pch_gpio.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/timbgpio.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/IR/lirc_dev.c

View file

This diff is incomplete. Download the complete patch.

drivers/platform/x86/intel_pmic_gpio.c

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/rio-driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/rio-scan.c

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/rio-sysfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/rio.c

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/rio.h

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/switches/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/switches/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/switches/idt_gen2.c

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/switches/idtcps.c

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/switches/tsi568.c

View file

This diff is incomplete. Download the complete patch.

drivers/rapidio/switches/tsi57x.c

View file

This diff is incomplete. Download the complete patch.

drivers/rtc/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/rtc/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/rtc/class.c

View file

This diff is incomplete. Download the complete patch.

drivers/rtc/rtc-bfin.c

View file

This diff is incomplete. Download the complete patch.

drivers/rtc/rtc-ds3232.c

View file

This diff is incomplete. Download the complete patch.

drivers/rtc/rtc-jz4740.c

View file

This diff is incomplete. Download the complete patch.

drivers/rtc/rtc-lpc32xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/rtc/rtc-omap.c

View file

This diff is incomplete. Download the complete patch.

drivers/rtc/rtc-s3c.c

View file

This diff is incomplete. Download the complete patch.

drivers/video/fbmem.c

View file

This diff is incomplete. Download the complete patch.

drivers/video/gbefb.c

View file

This diff is incomplete. Download the complete patch.

drivers/video/matrox/matroxfb_DAC1064.c

View file

This diff is incomplete. Download the complete patch.

drivers/video/matrox/matroxfb_maven.c

View file

This diff is incomplete. Download the complete patch.

drivers/video/omap/blizzard.c

View file

This diff is incomplete. Download the complete patch.

drivers/video/savage/savagefb-i2c.c

View file

This diff is incomplete. Download the complete patch.

drivers/w1/w1.c

View file

This diff is incomplete. Download the complete patch.

fs/Kconfig.binfmt

View file

This diff is incomplete. Download the complete patch.

fs/eventpoll.c

View file

This diff is incomplete. Download the complete patch.

fs/exec.c

View file

This diff is incomplete. Download the complete patch.

fs/fuse/dev.c

View file

This diff is incomplete. Download the complete patch.

fs/isofs/inode.c

View file

This diff is incomplete. Download the complete patch.

fs/proc/base.c

View file

This diff is incomplete. Download the complete patch.

fs/proc/softirqs.c

View file

This diff is incomplete. Download the complete patch.

fs/proc/stat.c

View file

This diff is incomplete. Download the complete patch.

fs/proc/task_mmu.c

View file

This diff is incomplete. Download the complete patch.

fs/select.c

View file

This diff is incomplete. Download the complete patch.

include/asm-generic/cputime.h

View file

This diff is incomplete. Download the complete patch.

include/asm-generic/gpio.h

View file

This diff is incomplete. Download the complete patch.

include/linux/basic_mmio_gpio.h

View file

This diff is incomplete. Download the complete patch.

include/linux/cgroup.h

View file

This diff is incomplete. Download the complete patch.

include/linux/fb.h

View file

This diff is incomplete. Download the complete patch.

include/linux/highmem.h

View file

This diff is incomplete. Download the complete patch.

include/linux/i2c/adp5588.h

View file

This diff is incomplete. Download the complete patch.

include/linux/init_task.h

View file

This diff is incomplete. Download the complete patch.

include/linux/kernel_stat.h

View file

This diff is incomplete. Download the complete patch.

include/linux/kfifo.h

View file

This diff is incomplete. Download the complete patch.

include/linux/poll.h

View file

This diff is incomplete. Download the complete patch.

include/linux/ptrace.h

View file

This diff is incomplete. Download the complete patch.

include/linux/ramoops.h

View file

This diff is incomplete. Download the complete patch.

include/linux/rio.h

View file

This diff is incomplete. Download the complete patch.

include/linux/rio_ids.h

View file

This diff is incomplete. Download the complete patch.

include/linux/rio_regs.h

View file

This diff is incomplete. Download the complete patch.

include/linux/sched.h

View file

This diff is incomplete. Download the complete patch.

include/linux/spi/74x164.h

View file

This diff is incomplete. Download the complete patch.

include/linux/synclink.h

View file

This diff is incomplete. Download the complete patch.

include/linux/syscalls.h

View file

This diff is incomplete. Download the complete patch.

include/linux/tracehook.h

View file

This diff is incomplete. Download the complete patch.

include/linux/virtio_9p.h

View file

This diff is incomplete. Download the complete patch.

init/Kconfig

View file

This diff is incomplete. Download the complete patch.

ipc/compat.c

View file

This diff is incomplete. Download the complete patch.

ipc/compat_mq.c

View file

This diff is incomplete. Download the complete patch.

ipc/shm.c

View file

This diff is incomplete. Download the complete patch.

kernel/cgroup.c

View file

This diff is incomplete. Download the complete patch.

kernel/cgroup_freezer.c

View file

This diff is incomplete. Download the complete patch.

kernel/cred.c

View file

This diff is incomplete. Download the complete patch.

kernel/exit.c

View file

This diff is incomplete. Download the complete patch.

kernel/fork.c

View file

This diff is incomplete. Download the complete patch.

kernel/irq/irqdesc.c

View file

This diff is incomplete. Download the complete patch.

kernel/ns_cgroup.c

View file

This diff is incomplete. Download the complete patch.

kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

kernel/resource.c

View file

This diff is incomplete. Download the complete patch.

kernel/signal.c

View file

This diff is incomplete. Download the complete patch.

kernel/taskstats.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_kprobe.c

View file

This diff is incomplete. Download the complete patch.

kernel/tsacct.c

View file

This diff is incomplete. Download the complete patch.

mm/highmem.c

View file

This diff is incomplete. Download the complete patch.

mm/memcontrol.c

View file

This diff is incomplete. Download the complete patch.

mm/swap.c

View file

This diff is incomplete. Download the complete patch.