lkml.org 
[lkml]   [2012]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[43/67] sparc32: Be less strict in matching %lo part of relocation.
    3.0-stable review patch.  If anyone has any objections, please let me know.

    ------------------


    From: "David S. Miller" <davem@davemloft.net>

    [ Upstream commit b1f44e13a525d2ffb7d5afe2273b7169d6f2222e ]

    The "(insn & 0x01800000) != 0x01800000" test matches 'restore'
    but that is a legitimate place to see the %lo() part of a 32-bit
    symbol relocation, particularly in tail calls.

    Signed-off-by: David S. Miller <davem@davemloft.net>
    Tested-by: Sergei Trofimovich <slyfox@gentoo.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    arch/sparc/mm/btfixup.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    --- a/arch/sparc/mm/btfixup.c
    +++ b/arch/sparc/mm/btfixup.c
    @@ -302,8 +302,7 @@ void __init btfixup(void)
    case 'i': /* INT */
    if ((insn & 0xc1c00000) == 0x01000000) /* %HI */
    set_addr(addr, q[1], fmangled, (insn & 0xffc00000) | (p[1] >> 10));
    - else if ((insn & 0x80002000) == 0x80002000 &&
    - (insn & 0x01800000) != 0x01800000) /* %LO */
    + else if ((insn & 0x80002000) == 0x80002000) /* %LO */
    set_addr(addr, q[1], fmangled, (insn & 0xffffe000) | (p[1] & 0x3ff));
    else {
    prom_printf(insn_i, p, addr, insn);



    \
     
     \ /
      Last update: 2012-01-04 00:01    [W:0.020 / U:122.596 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site