RE: [PATCH] arm64: add the ability to hook the fault code
> -Original Message- > From: Will Deacon [mailto:will.dea...@arm.com] > Sent: 2014年6月20日 16:40 > To: Neil Zhang > Cc: Catalin Marinas; linux-kernel@vger.kernel.org; > linux-arm-ker...@lists.infradead.org > Subject: Re: [PATCH] arm64: add the ability to hook the fault code > > On Fri, Jun 20, 2014 at 09:33:59AM +0100, Neil Zhang wrote: > > > > > -Original Message- > > > From: Will Deacon [mailto:will.dea...@arm.com] > > > Sent: 2014年6月20日 16:26 > > > To: Neil Zhang > > > Cc: Catalin Marinas; linux-arm-ker...@lists.infradead.org; > > > linux-kernel@vger.kernel.org > > > Subject: Re: [PATCH] arm64: add the ability to hook the fault code > > > > > > On Thu, Jun 19, 2014 at 11:54:56AM +0100, Neil Zhang wrote: > > > > Add the ability to hook the fault code for future use. > > > > > > Do you have a user for this in the kernel tree? I'd rather add the > > > hook with the first user, if it doesn't exist already. > > > > > > > Marvell Soc has a feature to use the external abort. > > I didn't submit it since it's a private feature. > > In which case, let's wait until we have a user of this in the mainline tree. > OK! > Will Best Regards, Neil Zhang
Re: [PATCH] arm64: add the ability to hook the fault code
On Fri, Jun 20, 2014 at 09:33:59AM +0100, Neil Zhang wrote: > > > -Original Message- > > From: Will Deacon [mailto:will.dea...@arm.com] > > Sent: 2014年6月20日 16:26 > > To: Neil Zhang > > Cc: Catalin Marinas; linux-arm-ker...@lists.infradead.org; > > linux-kernel@vger.kernel.org > > Subject: Re: [PATCH] arm64: add the ability to hook the fault code > > > > On Thu, Jun 19, 2014 at 11:54:56AM +0100, Neil Zhang wrote: > > > Add the ability to hook the fault code for future use. > > > > Do you have a user for this in the kernel tree? I'd rather add the hook with > > the first user, if it doesn't exist already. > > > > Marvell Soc has a feature to use the external abort. > I didn't submit it since it's a private feature. In which case, let's wait until we have a user of this in the mainline tree. Will -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
RE: [PATCH] arm64: add the ability to hook the fault code
> -Original Message- > From: Will Deacon [mailto:will.dea...@arm.com] > Sent: 2014年6月20日 16:26 > To: Neil Zhang > Cc: Catalin Marinas; linux-arm-ker...@lists.infradead.org; > linux-kernel@vger.kernel.org > Subject: Re: [PATCH] arm64: add the ability to hook the fault code > > On Thu, Jun 19, 2014 at 11:54:56AM +0100, Neil Zhang wrote: > > Add the ability to hook the fault code for future use. > > Do you have a user for this in the kernel tree? I'd rather add the hook with > the first user, if it doesn't exist already. > Marvell Soc has a feature to use the external abort. I didn't submit it since it's a private feature. > Will Best Regards, Neil Zhang
Re: [PATCH] arm64: add the ability to hook the fault code
On Thu, Jun 19, 2014 at 11:54:56AM +0100, Neil Zhang wrote: > Add the ability to hook the fault code for future use. Do you have a user for this in the kernel tree? I'd rather add the hook with the first user, if it doesn't exist already. Will -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] arm64: add the ability to hook the fault code
Add the ability to hook the fault code for future use. Signed-off-by: Neil Zhang --- arch/arm64/include/asm/system_misc.h |4 arch/arm64/mm/fault.c| 12 2 files changed, 16 insertions(+) diff --git a/arch/arm64/include/asm/system_misc.h b/arch/arm64/include/asm/system_misc.h index 7a18fab..a8c19dd 100644 --- a/arch/arm64/include/asm/system_misc.h +++ b/arch/arm64/include/asm/system_misc.h @@ -37,6 +37,10 @@ void hook_debug_fault_code(int nr, int (*fn)(unsigned long, unsigned int, struct pt_regs *), int sig, int code, const char *name); +void hook_fault_code(int nr, + int (*fn)(unsigned long, unsigned int, struct pt_regs *), + int sig, int code, const char *name); + struct mm_struct; extern void show_pte(struct mm_struct *mm, unsigned long addr); extern void __show_regs(struct pt_regs *); diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index bcc965e..7902fb6 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -447,6 +447,18 @@ static const char *fault_name(unsigned int esr) return inf->name; } +void __init hook_fault_code(int nr, + int (*fn)(unsigned long, unsigned int, struct pt_regs *), + int sig, int code, const char *name) +{ + BUG_ON(nr < 0 || nr >= ARRAY_SIZE(fault_info)); + + fault_info[nr].fn = fn; + fault_info[nr].sig = sig; + fault_info[nr].code = code; + fault_info[nr].name = name; +} + /* * Dispatch a data abort to the relevant handler. */ -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/