diff options
author | Tiejun Chen <tiejun.chen@windriver.com> | 2015-10-06 22:48:15 -0500 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2015-10-27 18:13:27 -0500 |
commit | 1cb6e064924857e600d13b4f6be5511145ecb560 (patch) | |
tree | 95c33bcfee818811a94def404737f5bfeeb9bd38 /arch/powerpc/include/asm/exception-64e.h | |
parent | 835c031c98ee1d166c7fdcdbd8c9cc20e05286d4 (diff) | |
download | linux-1cb6e064924857e600d13b4f6be5511145ecb560.tar.bz2 |
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/asm/exception-64e.h')
-rw-r--r-- | arch/powerpc/include/asm/exception-64e.h | 4 |
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 */ |