diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/kernel/ptrace.c | 49 | ||||
-rw-r--r-- | arch/arm/mach-aaec2000/clock.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-epxa10db/mm.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-integrator/impd1.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-pxa/corgi_lcd.c | 1 |
5 files changed, 5 insertions, 50 deletions
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index 9bd8609a2926..9a340e790da5 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c | |||
@@ -648,7 +648,7 @@ static int ptrace_setwmmxregs(struct task_struct *tsk, void __user *ufp) | |||
648 | 648 | ||
649 | #endif | 649 | #endif |
650 | 650 | ||
651 | static int do_ptrace(int request, struct task_struct *child, long addr, long data) | 651 | long arch_ptrace(struct task_struct *child, long request, long addr, long data) |
652 | { | 652 | { |
653 | unsigned long tmp; | 653 | unsigned long tmp; |
654 | int ret; | 654 | int ret; |
@@ -782,53 +782,6 @@ static int do_ptrace(int request, struct task_struct *child, long addr, long dat | |||
782 | return ret; | 782 | return ret; |
783 | } | 783 | } |
784 | 784 | ||
785 | asmlinkage long sys_ptrace(long request, long pid, long addr, long data) | ||
786 | { | ||
787 | struct task_struct *child; | ||
788 | int ret; | ||
789 | |||
790 | lock_kernel(); | ||
791 | ret = -EPERM; | ||
792 | if (request == PTRACE_TRACEME) { | ||
793 | /* are we already being traced? */ | ||
794 | if (current->ptrace & PT_PTRACED) | ||
795 | goto out; | ||
796 | ret = security_ptrace(current->parent, current); | ||
797 | if (ret) | ||
798 | goto out; | ||
799 | /* set the ptrace bit in the process flags. */ | ||
800 | current->ptrace |= PT_PTRACED; | ||
801 | ret = 0; | ||
802 | goto out; | ||
803 | } | ||
804 | ret = -ESRCH; | ||
805 | read_lock(&tasklist_lock); | ||
806 | child = find_task_by_pid(pid); | ||
807 | if (child) | ||
808 | get_task_struct(child); | ||
809 | read_unlock(&tasklist_lock); | ||
810 | if (!child) | ||
811 | goto out; | ||
812 | |||
813 | ret = -EPERM; | ||
814 | if (pid == 1) /* you may not mess with init */ | ||
815 | goto out_tsk; | ||
816 | |||
817 | if (request == PTRACE_ATTACH) { | ||
818 | ret = ptrace_attach(child); | ||
819 | goto out_tsk; | ||
820 | } | ||
821 | ret = ptrace_check_attach(child, request == PTRACE_KILL); | ||
822 | if (ret == 0) | ||
823 | ret = do_ptrace(request, child, addr, data); | ||
824 | |||
825 | out_tsk: | ||
826 | put_task_struct(child); | ||
827 | out: | ||
828 | unlock_kernel(); | ||
829 | return ret; | ||
830 | } | ||
831 | |||
832 | asmlinkage void syscall_trace(int why, struct pt_regs *regs) | 785 | asmlinkage void syscall_trace(int why, struct pt_regs *regs) |
833 | { | 786 | { |
834 | unsigned long ip; | 787 | unsigned long ip; |
diff --git a/arch/arm/mach-aaec2000/clock.c b/arch/arm/mach-aaec2000/clock.c index 99e019169dda..0340ddc4824e 100644 --- a/arch/arm/mach-aaec2000/clock.c +++ b/arch/arm/mach-aaec2000/clock.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/list.h> | 14 | #include <linux/list.h> |
15 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
16 | #include <linux/err.h> | 16 | #include <linux/err.h> |
17 | #include <linux/string.h> | ||
17 | 18 | ||
18 | #include <asm/semaphore.h> | 19 | #include <asm/semaphore.h> |
19 | #include <asm/hardware/clock.h> | 20 | #include <asm/hardware/clock.h> |
diff --git a/arch/arm/mach-epxa10db/mm.c b/arch/arm/mach-epxa10db/mm.c index e8832d0910ee..cfd0d2182d44 100644 --- a/arch/arm/mach-epxa10db/mm.c +++ b/arch/arm/mach-epxa10db/mm.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <asm/hardware.h> | 25 | #include <asm/hardware.h> |
26 | #include <asm/io.h> | 26 | #include <asm/io.h> |
27 | #include <asm/sizes.h> | 27 | #include <asm/sizes.h> |
28 | #include <asm/page.h> | ||
28 | 29 | ||
29 | #include <asm/mach/map.h> | 30 | #include <asm/mach/map.h> |
30 | 31 | ||
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c index a1b153d1626c..a4bafee77a06 100644 --- a/arch/arm/mach-integrator/impd1.c +++ b/arch/arm/mach-integrator/impd1.c | |||
@@ -420,8 +420,7 @@ static int impd1_probe(struct lm_device *dev) | |||
420 | free_impd1: | 420 | free_impd1: |
421 | if (impd1 && impd1->base) | 421 | if (impd1 && impd1->base) |
422 | iounmap(impd1->base); | 422 | iounmap(impd1->base); |
423 | if (impd1) | 423 | kfree(impd1); |
424 | kfree(impd1); | ||
425 | release_lm: | 424 | release_lm: |
426 | release_mem_region(dev->resource.start, SZ_4K); | 425 | release_mem_region(dev->resource.start, SZ_4K); |
427 | return ret; | 426 | return ret; |
diff --git a/arch/arm/mach-pxa/corgi_lcd.c b/arch/arm/mach-pxa/corgi_lcd.c index 54162ba95414..698eb06545c4 100644 --- a/arch/arm/mach-pxa/corgi_lcd.c +++ b/arch/arm/mach-pxa/corgi_lcd.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | #include <linux/string.h> | ||
22 | #include <asm/arch/akita.h> | 23 | #include <asm/arch/akita.h> |
23 | #include <asm/arch/corgi.h> | 24 | #include <asm/arch/corgi.h> |
24 | #include <asm/arch/hardware.h> | 25 | #include <asm/arch/hardware.h> |