The patch titled compiler-gcc.h: add more comments to RELOC_HIDE has been removed from the -mm tree. Its filename was compiler-gcch-add-more-comments-to-reloc_hide.patch This patch was dropped because it was merged into mainline or a subsystem tree The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: compiler-gcc.h: add more comments to RELOC_HIDE From: Andi Kleen <andi@xxxxxxxxxxxxxx> Requested by C. Lameter Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx> Cc: Christoph Lameter <cl@xxxxxxxxxxxxxxxxxxxx> Cc: Andi Kleen <andi@xxxxxxxxxxxxxx> Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx> Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Cc: Mike Travis <travis@xxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: Richard Henderson <rth@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/compiler-gcc.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff -puN include/linux/compiler-gcc.h~compiler-gcch-add-more-comments-to-reloc_hide include/linux/compiler-gcc.h --- a/include/linux/compiler-gcc.h~compiler-gcch-add-more-comments-to-reloc_hide +++ a/include/linux/compiler-gcc.h @@ -11,9 +11,19 @@ /* The "volatile" is due to gcc bugs */ #define barrier() __asm__ __volatile__("": : :"memory") -/* This macro obfuscates arithmetic on a variable address so that gcc - shouldn't recognize the original var, and make assumptions about it */ /* + * This macro obfuscates arithmetic on a variable address so that gcc + * shouldn't recognize the original var, and make assumptions about it. + * + * This is needed because the C standard makes it undefined to do + * pointer arithmetic on "objects" outside their boundaries and the + * gcc optimizers assume this is the case. In particular they + * assume such arithmetic does not wrap. + * + * A miscompilation has been observed because of this on PPC. + * To work around it we hide the relationship of the pointer and the object + * using this macro. + * * Versions of the ppc64 compiler before 4.1 had a bug where use of * RELOC_HIDE could trash r30. The bug can be worked around by changing * the inline assembly constraint from =g to =r, in this particular _ Patches currently in -mm which might be from andi@xxxxxxxxxxxxxx are linux-next.patch x86-hpet-allow-force-enable-on-ich10-hpet.patch x86-avoid-theoretical-vmalloc-fault-loop.patch nilfs2-fix-problems-of-memory-allocation-in-ioctl.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html