From 7ff4a5ed437ca309f228fc2a123840f8e8852466 Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Wed, 1 Aug 2007 16:19:49 +0900 Subject: [PATCH] --- yaml --- r: 63638 b: refs/heads/master c: c71799433aa4d6378502f781a155321e77da73aa h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/sh/mm/fault-nommu.c | 47 +++++++++++----------------------- 2 files changed, 16 insertions(+), 33 deletions(-) diff --git a/[refs] b/[refs] index 69e34a995dcf..aea5de35b9dc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c347d12cd1642ba193f55bdab29395d639c5efc2 +refs/heads/master: c71799433aa4d6378502f781a155321e77da73aa diff --git a/trunk/arch/sh/mm/fault-nommu.c b/trunk/arch/sh/mm/fault-nommu.c index 923cb456819b..c6f5b51ec2c7 100644 --- a/trunk/arch/sh/mm/fault-nommu.c +++ b/trunk/arch/sh/mm/fault-nommu.c @@ -1,47 +1,33 @@ -/* +/* * arch/sh/mm/fault-nommu.c * - * Copyright (C) 2002 Paul Mundt + * Copyright (C) 2002 - 2007 Paul Mundt * * Based on linux/arch/sh/mm/fault.c: * Copyright (C) 1999 Niibe Yutaka * * Released under the terms of the GNU GPL v2.0. */ - -#include -#include #include -#include -#include -#include -#include -#include #include -#include -#include - +#include +#include #include -#include -#include -#include -#include -#include - -#if defined(CONFIG_SH_KGDB) +#include #include -#endif - -extern void die(const char *,struct pt_regs *,long); /* * This routine handles page faults. It determines the address, * and the problem, and then passes it off to one of the appropriate * routines. */ -asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, - unsigned long address) +asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, + unsigned long writeaccess, + unsigned long address) { + trace_hardirqs_on(); + local_irq_enable(); + #if defined(CONFIG_SH_KGDB) if (kgdb_nofault && kgdb_bus_err_hook) kgdb_bus_err_hook(); @@ -65,17 +51,14 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, do_exit(SIGKILL); } -asmlinkage int __do_page_fault(struct pt_regs *regs, unsigned long writeaccess, - unsigned long address) +asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs, + unsigned long writeaccess, + unsigned long address) { #if defined(CONFIG_SH_KGDB) if (kgdb_nofault && kgdb_bus_err_hook) kgdb_bus_err_hook(); #endif - if (address >= TASK_SIZE) - return 1; - - return 0; + return (address >= TASK_SIZE); } -