diff options
Diffstat (limited to 'arch/avr32')
| -rw-r--r-- | arch/avr32/include/asm/ptrace.h | 2 | ||||
| -rw-r--r-- | arch/avr32/kernel/process.c | 1 | ||||
| -rw-r--r-- | arch/avr32/kernel/ptrace.c | 53 | ||||
| -rw-r--r-- | arch/avr32/mach-at32ap/at32ap700x.c | 1 | ||||
| -rw-r--r-- | arch/avr32/mach-at32ap/extint.c | 1 | ||||
| -rw-r--r-- | arch/avr32/mach-at32ap/hsmc.c | 1 | ||||
| -rw-r--r-- | arch/avr32/mm/dma-coherent.c | 1 | ||||
| -rw-r--r-- | arch/avr32/mm/init.c | 1 | ||||
| -rw-r--r-- | arch/avr32/mm/ioremap.c | 1 | 
9 files changed, 16 insertions, 46 deletions
diff --git a/arch/avr32/include/asm/ptrace.h b/arch/avr32/include/asm/ptrace.h index 9e2d44f4e0f..e53dd0d900f 100644 --- a/arch/avr32/include/asm/ptrace.h +++ b/arch/avr32/include/asm/ptrace.h @@ -124,6 +124,8 @@ struct pt_regs {  #include <asm/ocd.h> +#define arch_has_single_step()		(1) +  #define arch_ptrace_attach(child)       ocd_enable(child)  #define user_mode(regs)                 (((regs)->sr & MODE_MASK) == MODE_USER) diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c index 93c0342530a..2d76515745a 100644 --- a/arch/avr32/kernel/process.c +++ b/arch/avr32/kernel/process.c @@ -11,6 +11,7 @@  #include <linux/fs.h>  #include <linux/pm.h>  #include <linux/ptrace.h> +#include <linux/slab.h>  #include <linux/reboot.h>  #include <linux/tick.h>  #include <linux/uaccess.h> diff --git a/arch/avr32/kernel/ptrace.c b/arch/avr32/kernel/ptrace.c index 1fed38fcf59..5e73c25f8f8 100644 --- a/arch/avr32/kernel/ptrace.c +++ b/arch/avr32/kernel/ptrace.c @@ -28,9 +28,9 @@ static struct pt_regs *get_user_regs(struct task_struct *tsk)  				  THREAD_SIZE - sizeof(struct pt_regs));  } -static void ptrace_single_step(struct task_struct *tsk) +void user_enable_single_step(struct task_struct *tsk)  { -	pr_debug("ptrace_single_step: pid=%u, PC=0x%08lx, SR=0x%08lx\n", +	pr_debug("user_enable_single_step: pid=%u, PC=0x%08lx, SR=0x%08lx\n",  		 tsk->pid, task_pt_regs(tsk)->pc, task_pt_regs(tsk)->sr);  	/* @@ -49,6 +49,11 @@ static void ptrace_single_step(struct task_struct *tsk)  	set_tsk_thread_flag(tsk, TIF_SINGLE_STEP);  } +void user_disable_single_step(struct task_struct *child) +{ +	/* XXX(hch): a no-op here seems wrong.. */ +} +  /*   * Called by kernel/ptrace.c when detaching   * @@ -167,50 +172,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)  		ret = ptrace_write_user(child, addr, data);  		break; -	/* continue and stop at next (return from) syscall */ -	case PTRACE_SYSCALL: -	/* restart after signal */ -	case PTRACE_CONT: -		ret = -EIO; -		if (!valid_signal(data)) -			break; -		if (request == PTRACE_SYSCALL) -			set_tsk_thread_flag(child, TIF_SYSCALL_TRACE); -		else -			clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); -		child->exit_code = data; -		/* XXX: Are we sure no breakpoints are active here? */ -		wake_up_process(child); -		ret = 0; -		break; - -	/* -	 * Make the child exit. Best I can do is send it a -	 * SIGKILL. Perhaps it should be put in the status that it -	 * wants to exit. -	 */ -	case PTRACE_KILL: -		ret = 0; -		if (child->exit_state == EXIT_ZOMBIE) -			break; -		child->exit_code = SIGKILL; -		wake_up_process(child); -		break; - -	/* -	 * execute single instruction. -	 */ -	case PTRACE_SINGLESTEP: -		ret = -EIO; -		if (!valid_signal(data)) -			break; -		clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); -		ptrace_single_step(child); -		child->exit_code = data; -		wake_up_process(child); -		ret = 0; -		break; -  	case PTRACE_GETREGS:  		ret = ptrace_getregs(child, (void __user *)data);  		break; diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c index 3a4bc1a1843..e67c9994542 100644 --- a/arch/avr32/mach-at32ap/at32ap700x.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c @@ -12,6 +12,7 @@  #include <linux/init.h>  #include <linux/platform_device.h>  #include <linux/dma-mapping.h> +#include <linux/slab.h>  #include <linux/gpio.h>  #include <linux/spi/spi.h>  #include <linux/usb/atmel_usba_udc.h> diff --git a/arch/avr32/mach-at32ap/extint.c b/arch/avr32/mach-at32ap/extint.c index 310477ba1bb..e9d12058ffd 100644 --- a/arch/avr32/mach-at32ap/extint.c +++ b/arch/avr32/mach-at32ap/extint.c @@ -14,6 +14,7 @@  #include <linux/irq.h>  #include <linux/platform_device.h>  #include <linux/random.h> +#include <linux/slab.h>  #include <asm/io.h> diff --git a/arch/avr32/mach-at32ap/hsmc.c b/arch/avr32/mach-at32ap/hsmc.c index 2875c11be95..f7672d3e86b 100644 --- a/arch/avr32/mach-at32ap/hsmc.c +++ b/arch/avr32/mach-at32ap/hsmc.c @@ -12,6 +12,7 @@  #include <linux/init.h>  #include <linux/module.h>  #include <linux/platform_device.h> +#include <linux/slab.h>  #include <asm/io.h>  #include <mach/smc.h> diff --git a/arch/avr32/mm/dma-coherent.c b/arch/avr32/mm/dma-coherent.c index 6d8c794c3b8..3c0042247ea 100644 --- a/arch/avr32/mm/dma-coherent.c +++ b/arch/avr32/mm/dma-coherent.c @@ -7,6 +7,7 @@   */  #include <linux/dma-mapping.h> +#include <linux/gfp.h>  #include <asm/addrspace.h>  #include <asm/cacheflush.h> diff --git a/arch/avr32/mm/init.c b/arch/avr32/mm/init.c index 94925641e53..a7314d44b17 100644 --- a/arch/avr32/mm/init.c +++ b/arch/avr32/mm/init.c @@ -7,6 +7,7 @@   */  #include <linux/kernel.h> +#include <linux/gfp.h>  #include <linux/mm.h>  #include <linux/swap.h>  #include <linux/init.h> diff --git a/arch/avr32/mm/ioremap.c b/arch/avr32/mm/ioremap.c index f03b79f0e0a..7def0d84cec 100644 --- a/arch/avr32/mm/ioremap.c +++ b/arch/avr32/mm/ioremap.c @@ -9,6 +9,7 @@  #include <linux/mm.h>  #include <linux/module.h>  #include <linux/io.h> +#include <linux/slab.h>  #include <asm/pgtable.h>  #include <asm/addrspace.h>  |