• Harvey Harrison's avatar
    x86, olpc: fix endian bug in openfirmware workaround · e51a1ac2
    Harvey Harrison authored
    Boardrev is always treated as a u32 everywhere else, no reason to
    byteswap the 0xc2 value.  The only use is to print out if it is
    a prerelease board, the test being:
    
    (olpc_platform_info.boardrev & 0xf) < 8
    
    Which is currently always true as be32_to_cpu(0xc2) & 0xf = 0
    but I doubt that was the intention here.  The consequences of the bug
    are pretty minor though (incorrect boardrev displayed in dmesg when
    ofw support not configured)
    
    Also annotate the temporary used to read the boardrev in the ofw
    case.
    
    The confusion was noticed by Sparse:
    
      arch/x86/kernel/olpc.c:206:32: warning: cast to restricted __be32
    Signed-off-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    e51a1ac2
olpc.c 6.46 KB