Messages in this thread |  | | | Date | Wed, 24 Sep 2008 09:53:38 +0200 | | From | Ingo Molnar <> | | Subject | Re: [PATCH] olpc: fix endian bug in openfirmware workaround | |
* Harvey Harrison <harvey.harrison@gmail.com> wrote:
> 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: Harvey Harrison <harvey.harrison@gmail.com>
applied to tip/x86/sparse-fixes, thanks Harvey!
Ingo
|  |