summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include
diff options
context:
space:
mode:
authorTiejun Chen <tiejun.chen@windriver.com>2015-10-07 05:48:15 +0200
committerScott Wood <scottwood@freescale.com>2015-10-28 00:13:27 +0100
commit1cb6e064924857e600d13b4f6be5511145ecb560 (patch)
tree95c33bcfee818811a94def404737f5bfeeb9bd38 /arch/powerpc/include
parentpowerpc/booke64: Fix args to copy_and_flush (diff)
downloadlinux-1cb6e064924857e600d13b4f6be5511145ecb560.tar.xz
linux-1cb6e064924857e600d13b4f6be5511145ecb560.zip
powerpc/book3e: support CONFIG_RELOCATABLE
book3e is different with book3s since 3s includes the exception vectors code in head_64.S as it relies on absolute addressing which is only possible within this compilation unit. So we have to get that label address with got. And when boot a relocated kernel, we should reset ipvr properly again after .relocate. Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com> [scottwood: cleanup and ifdef removal] Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r--arch/powerpc/include/asm/exception-64e.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/exception-64e.h b/arch/powerpc/include/asm/exception-64e.h
index a8b52b61043f..344fc43a7076 100644
--- a/arch/powerpc/include/asm/exception-64e.h
+++ b/arch/powerpc/include/asm/exception-64e.h
@@ -204,8 +204,8 @@ exc_##label##_book3e:
#endif
#define SET_IVOR(vector_number, vector_offset) \
- li r3,vector_offset@l; \
- ori r3,r3,interrupt_base_book3e@l; \
+ LOAD_REG_ADDR(r3,interrupt_base_book3e);\
+ ori r3,r3,vector_offset@l; \
mtspr SPRN_IVOR##vector_number,r3;
#endif /* _ASM_POWERPC_EXCEPTION_64E_H */