diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2010-08-17 16:01:59 +0100 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2010-10-04 18:33:55 +0100 |
commit | 5707bf6bcecd85d01ea22e8b28cf66170068475f (patch) | |
tree | 7e816313c963b856caceb6611928cb1fa98929ce | |
parent | 1ec0e739766b29c9d93d8a4cff68b1cb2e962cde (diff) | |
download | linux-stable-5707bf6bcecd85d01ea22e8b28cf66170068475f.tar.gz linux-stable-5707bf6bcecd85d01ea22e8b28cf66170068475f.tar.bz2 linux-stable-5707bf6bcecd85d01ea22e8b28cf66170068475f.zip |
MIPS: Document why RELOC_HIDE is there.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/include/asm/page.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h index a16beafcea91..e59cd1ac09c2 100644 --- a/arch/mips/include/asm/page.h +++ b/arch/mips/include/asm/page.h @@ -150,6 +150,20 @@ typedef struct { unsigned long pgprot; } pgprot_t; ((unsigned long)(x) - PAGE_OFFSET + PHYS_OFFSET) #endif #define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET)) + +/* + * RELOC_HIDE was originally added by 6007b903dfe5f1d13e0c711ac2894bdd4a61b1ad + * (lmo) rsp. 8431fd094d625b94d364fe393076ccef88e6ce18 (kernel.org). The + * discussion can be found in lkml posting + * <a2ebde260608230500o3407b108hc03debb9da6e62c@mail.gmail.com> which is + * archived at http://lists.linuxcoding.com/kernel/2006-q3/msg17360.html + * + * It is unclear if the misscompilations mentioned in + * http://lkml.org/lkml/2010/8/8/138 also affect MIPS so we keep this one + * until GCC 3.x has been retired before we can apply + * https://patchwork.linux-mips.org/patch/1541/ + */ + #define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x), 0)) #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) |