Re: [PATCH] x86: remove __phys_reloc_hide

From: Namhyung Kim
Date: Mon Aug 09 2010 - 03:47:39 EST


2010-08-09 (ì), 09:22 +0200, Andi Kleen:

> The original reason was that the C standard allows the compiler
> to make some assumptions on the pointer arithmetic that is done
> on symbol addresses (e.g. no wrapping). This is exploited
> by the optimizer in the compiler to generate better code.
>
> This lead to a miscompilation on PowerPC a couple of years back at
> least with the va->pa conversion.
>
> After that RELOC_HIDE was introduced after funelling the
> symbol address through an empty asm statement was recommended
> as the official way to do this by the gcc developers.
>
> I think x86-64 does not normally wrap here, but it's
> still safer to do it this way.
>
> -Andi

OK, then. Thanks for the comment.

p.s. The funny thing I found is there's no use of RELOC_HIDE on
arch/powerpc. Hmm...

--
Regards,
Namhyung Kim


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/