diff options
-rw-r--r-- | arch/powerpc/kernel/vdso64/vdso64.lds.S | 6 | ||||
-rw-r--r-- | include/asm-powerpc/ppc_asm.h | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/vdso64/vdso64.lds.S b/arch/powerpc/kernel/vdso64/vdso64.lds.S index 932b3fdb34b9..7d6585f90277 100644 --- a/arch/powerpc/kernel/vdso64/vdso64.lds.S +++ b/arch/powerpc/kernel/vdso64/vdso64.lds.S | |||
@@ -43,15 +43,15 @@ SECTIONS | |||
43 | .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } | 43 | .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } |
44 | .rodata1 : { *(.rodata1) } | 44 | .rodata1 : { *(.rodata1) } |
45 | 45 | ||
46 | .dynamic : { *(.dynamic) } :text :dynamic | ||
47 | |||
46 | .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr | 48 | .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr |
47 | .eh_frame : { KEEP (*(.eh_frame)) } :text | 49 | .eh_frame : { KEEP (*(.eh_frame)) } :text |
48 | .gcc_except_table : { *(.gcc_except_table) } | 50 | .gcc_except_table : { *(.gcc_except_table) } |
51 | .rela.dyn ALIGN(8) : { *(.rela.dyn) } | ||
49 | 52 | ||
50 | .opd ALIGN(8) : { KEEP (*(.opd)) } | 53 | .opd ALIGN(8) : { KEEP (*(.opd)) } |
51 | .got ALIGN(8) : { *(.got .toc) } | 54 | .got ALIGN(8) : { *(.got .toc) } |
52 | .rela.dyn ALIGN(8) : { *(.rela.dyn) } | ||
53 | |||
54 | .dynamic : { *(.dynamic) } :text :dynamic | ||
55 | 55 | ||
56 | _end = .; | 56 | _end = .; |
57 | PROVIDE(end = .); | 57 | PROVIDE(end = .); |
diff --git a/include/asm-powerpc/ppc_asm.h b/include/asm-powerpc/ppc_asm.h index 2dbd4e7884fa..ef96bfd4ef4c 100644 --- a/include/asm-powerpc/ppc_asm.h +++ b/include/asm-powerpc/ppc_asm.h | |||
@@ -356,6 +356,12 @@ END_FTR_SECTION_IFCLR(CPU_FTR_601) | |||
356 | #define toreal(rd) | 356 | #define toreal(rd) |
357 | #define fromreal(rd) | 357 | #define fromreal(rd) |
358 | 358 | ||
359 | /* | ||
360 | * We use addis to ensure compatibility with the "classic" ppc versions of | ||
361 | * these macros, which use rs = 0 to get the tophys offset in rd, rather than | ||
362 | * converting the address in r0, and so this version has to do that too | ||
363 | * (i.e. set register rd to 0 when rs == 0). | ||
364 | */ | ||
359 | #define tophys(rd,rs) \ | 365 | #define tophys(rd,rs) \ |
360 | addis rd,rs,0 | 366 | addis rd,rs,0 |
361 | 367 | ||