Re: [PATCH 1/2] kprobes: Introduce kprobe_handle_fault()

From: Andrew Morton
Date: Fri Feb 29 2008 - 06:17:35 EST


On Sat, 02 Feb 2008 19:00:23 -0800 Harvey Harrison <harvey.harrison@xxxxxxxxx> wrote:

> Use a central kprobe_handle_fault() inline in kprobes.h to remove
> all of the arch-dependant, practically identical implementations in
> avr32, ia64, powerpc, s390, sparc64, and x86.
>
> avr32 was the only arch without the preempt_disable/enable pair
> in its notify_page_fault implementation.
>
> This uncovered a possible bug in the s390 version as that purely
> copied the x86 version unconditionally passing 14 as the trapnr
> rather than the error_code parameter. s390 is changed to pass
> error_code in this patch.
>
> Signed-off-by: Harvey Harrison <harvey.harrison@xxxxxxxxx>
> ---
> Andrew, 1/2 is low risk, 2/2 has been tested on x86-32 and 64,
> but the !preemptible invariant seems correct.
>
> arch/arm/mm/fault.c | 25 +------------------------
> arch/avr32/mm/fault.c | 21 +--------------------
> arch/ia64/mm/fault.c | 24 +-----------------------
> arch/powerpc/mm/fault.c | 25 +------------------------
> arch/s390/mm/fault.c | 25 +------------------------
> arch/sparc64/mm/fault.c | 23 +----------------------
> arch/x86/mm/fault.c | 26 ++------------------------
> include/linux/kprobes.h | 20 ++++++++++++++++++++
> 8 files changed, 28 insertions(+), 161 deletions(-)

Breaks the ia64 build:

include/linux/kprobes.h: In function `kprobe_handle_fault':
include/linux/kprobes.h:234: error: implicit declaration of function `kprobe_fault_handler'

and ia64 doesn't implement kprobe_fault_handler() so there's no easy fix
here.

There's too much inlining in linux/kprobes.h, btw.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/