summaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2009-01-01 22:25:30 +0100
committerRusty Russell <rusty@rustcorp.com.au>2009-01-05 08:40:14 +1030
commitc298be74492bece102f3379d14015638f1fd1fac (patch)
tree92b314dff5ebc41e1eeb5d6d41f84db3a393e668 /arch/powerpc
parent088af9a6e05d51e7c3dc85d45d8b7a52c3ee08d7 (diff)
downloadblackbird-obmc-linux-c298be74492bece102f3379d14015638f1fd1fac.tar.gz
blackbird-obmc-linux-c298be74492bece102f3379d14015638f1fd1fac.zip
parisc: fix module loading failure of large kernel modules
On 32bit (and sometimes 64bit) and with big kernel modules like xfs or ipv6 the relocation types R_PARISC_PCREL17F and R_PARISC_PCREL22F may fail to reach their PLT stub if we only create one big stub array for all sections at the beginning of the core or init section. With this patch we now instead add individual PLT stub entries directly in front of the code sections where the stubs are actually called. This reduces the distance between the PCREL location and the stub entry so that the relocations can be fulfilled. While calculating the final layout of the kernel module in memory, the kernel module loader calls arch_mod_section_prepend() to request the to be reserved amount of memory in front of each individual section. Tested with 32- and 64bit kernels. Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'arch/powerpc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud