Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: Document why RELOC_HIDE is there.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

+14
+14
arch/mips/include/asm/page.h
··· 150 150 ((unsigned long)(x) - PAGE_OFFSET + PHYS_OFFSET) 151 151 #endif 152 152 #define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET)) 153 + 154 + /* 155 + * RELOC_HIDE was originally added by 6007b903dfe5f1d13e0c711ac2894bdd4a61b1ad 156 + * (lmo) rsp. 8431fd094d625b94d364fe393076ccef88e6ce18 (kernel.org). The 157 + * discussion can be found in lkml posting 158 + * <a2ebde260608230500o3407b108hc03debb9da6e62c@mail.gmail.com> which is 159 + * archived at http://lists.linuxcoding.com/kernel/2006-q3/msg17360.html 160 + * 161 + * It is unclear if the misscompilations mentioned in 162 + * http://lkml.org/lkml/2010/8/8/138 also affect MIPS so we keep this one 163 + * until GCC 3.x has been retired before we can apply 164 + * https://patchwork.linux-mips.org/patch/1541/ 165 + */ 166 + 153 167 #define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x), 0)) 154 168 155 169 #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)