• David S. Miller's avatar
    [SPARC64]: Handle little-endian unaligned loads/stores correctly. · ff171d8f
    David S. Miller authored
    Because we use byte loads/stores to cons up the value
    in and out of registers, we can't expect the ASI endianness
    setting to take care of this for us.  So do it by hand.
    
    This case is triggered by drivers/block/aoe/aoecmd.c in the
    ataid_complete() function where it goes:
    
    		/* word 100: number lba48 sectors */
    		ssize = le64_to_cpup((__le64 *) &id[100<<1]);
    
    This &id[100<<1] address is 4 byte, rather than 8 byte aligned,
    thus triggering the unaligned exception.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ff171d8f
una_asm.S 3.5 KB