linux-mips
[Top] [All Lists]

Re: Improper handling of unaligned user address access?

To: "Steven J. Hill" <sjhill@realitydiluted.com>
Subject: Re: Improper handling of unaligned user address access?
From: Jun Sun <jsun@mvista.com>
Date: Mon, 3 Mar 2003 17:41:53 -0800
Cc: linux-mips@linux-mips.org, jsun@mvista.com
In-reply-to: <3E63EFDC.6090605@realitydiluted.com>; from sjhill@realitydiluted.com on Mon, Mar 03, 2003 at 06:14:20PM -0600
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <3E63B17C.8000403@realitydiluted.com> <3E63EFDC.6090605@realitydiluted.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.2.5i
On Mon, Mar 03, 2003 at 06:14:20PM -0600, Steven J. Hill wrote:
> The first thing I tried to fix this issue was to use the
> 'memcpy.S' file from 2.4.7 and that actually worked, but
> that was a step backwards. It was much simpler to just
> add a 'nop' after the offending branch instruction. It
> fixes all of my problems with 'copy_from_user'. 

Adding 'nop' seems to be right.

> I do have one further question. In 'arch/mips/mm/fault.c'
> when we need to do a fixup:
> 
>     fixup = search_exception_table(regs->cp0_epc);
>
> Why do we not check to see if the EPC is a branch insn
> before looking in the exception table?
>

You must be looking at a different tree.  We do check epc
for branch instruction:

        fixup = search_exception_table(exception_epc(regs));

Jun

<Prev in Thread] Current Thread [Next in Thread>