Message ID | 20130222123637.GA30923@n2100.arm.linux.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Feb 22, 2013 at 12:36:37PM +0000, Russell King - ARM Linux wrote: > On Thu, Feb 21, 2013 at 10:48:19AM +0100, Paolo Pisati wrote: > > any idea how can i debug this? > > Please try this patch, and report back whether it solves your problem. > Thanks. yes, it solves my problem: any chance we can see it in 3.9 or 3.8.x?
On Mon, Feb 25, 2013 at 03:20:48PM +0100, Paolo Pisati wrote: > On Fri, Feb 22, 2013 at 12:36:37PM +0000, Russell King - ARM Linux wrote: > > On Thu, Feb 21, 2013 at 10:48:19AM +0100, Paolo Pisati wrote: > > > any idea how can i debug this? > > > > Please try this patch, and report back whether it solves your problem. > > Thanks. > > yes, it solves my problem: any chance we can see it in 3.9 or 3.8.x? I was just looking to send a chase for this, because I'm about to remerge my tree and I wanted this patch committed. Can I use your name and email address in the commit for the Reported-by and Tested-by tags (which will be published in the kernel repository) please? Thanks.
On Mon, Feb 25, 2013 at 04:14:01PM +0000, Russell King - ARM Linux wrote: > > I was just looking to send a chase for this, because I'm about to > remerge my tree and I wanted this patch committed. > > Can I use your name and email address in the commit for the Reported-by > and Tested-by tags (which will be published in the kernel repository) > please? Thanks. absolutely: Reported-by: Paolo Pisati <p.pisati@gmail.com> Tested-by: Paolo Pisati <p.pisati@gmail.com>
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c index b820eda..db26e2e 100644 --- a/arch/arm/mm/alignment.c +++ b/arch/arm/mm/alignment.c @@ -749,7 +749,6 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) unsigned long instr = 0, instrptr; int (*handler)(unsigned long addr, unsigned long instr, struct pt_regs *regs); unsigned int type; - mm_segment_t fs; unsigned int fault; u16 tinstr = 0; int isize = 4; @@ -760,16 +759,15 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) instrptr = instruction_pointer(regs); - fs = get_fs(); - set_fs(KERNEL_DS); if (thumb_mode(regs)) { - fault = __get_user(tinstr, (u16 *)(instrptr & ~1)); + u16 *ptr = (u16 *)(instrptr & ~1); + fault = probe_kernel_address(ptr, tinstr); if (!fault) { if (cpu_architecture() >= CPU_ARCH_ARMv7 && IS_T32(tinstr)) { /* Thumb-2 32-bit */ u16 tinst2 = 0; - fault = __get_user(tinst2, (u16 *)(instrptr+2)); + fault = probe_kernel_address(ptr + 1, tinst2); instr = (tinstr << 16) | tinst2; thumb2_32b = 1; } else { @@ -778,8 +776,7 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) } } } else - fault = __get_user(instr, (u32 *)instrptr); - set_fs(fs); + fault = probe_kernel_address(instrptr, instr); if (fault) { type = TYPE_FAULT;
On Thu, Feb 21, 2013 at 10:48:19AM +0100, Paolo Pisati wrote: > any idea how can i debug this? Please try this patch, and report back whether it solves your problem. Thanks. arch/arm/mm/alignment.c | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-)