diff options
author | Anton Arapov <anton@redhat.com> | 2012-06-21 08:44:47 +0200 |
---|---|---|
committer | Anton Arapov <anton@redhat.com> | 2012-06-21 08:44:47 +0200 |
commit | 35df99f47c4246df74ed7571c692138b83c3c486 (patch) | |
tree | 1f14dd15cf001e590e7f7406c8e594a0003fcff0 /arch/powerpc/kernel/module_32.c | |
parent | 8a6c6e11d3f0dcecf13668e33f5095b1fe9cb613 (diff) | |
download | kernel-uprobes-35df99f47c4246df74ed7571c692138b83c3c486.tar.gz kernel-uprobes-35df99f47c4246df74ed7571c692138b83c3c486.tar.xz kernel-uprobes-35df99f47c4246df74ed7571c692138b83c3c486.zip |
fedora kernel: 3d47c715a4a94b9d700c9e4ec1fc3a786bfde746v3.4.3-3
Signed-off-by: Anton Arapov <anton@redhat.com>
Diffstat (limited to 'arch/powerpc/kernel/module_32.c')
-rw-r--r-- | arch/powerpc/kernel/module_32.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c index 0b6d79617d7..2e3200ca485 100644 --- a/arch/powerpc/kernel/module_32.c +++ b/arch/powerpc/kernel/module_32.c @@ -176,8 +176,8 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr, static inline int entry_matches(struct ppc_plt_entry *entry, Elf32_Addr val) { - if (entry->jump[0] == 0x3d600000 + ((val + 0x8000) >> 16) - && entry->jump[1] == 0x396b0000 + (val & 0xffff)) + if (entry->jump[0] == 0x3d800000 + ((val + 0x8000) >> 16) + && entry->jump[1] == 0x398c0000 + (val & 0xffff)) return 1; return 0; } @@ -204,10 +204,9 @@ static uint32_t do_plt_call(void *location, entry++; } - /* Stolen from Paul Mackerras as well... */ - entry->jump[0] = 0x3d600000+((val+0x8000)>>16); /* lis r11,sym@ha */ - entry->jump[1] = 0x396b0000 + (val&0xffff); /* addi r11,r11,sym@l*/ - entry->jump[2] = 0x7d6903a6; /* mtctr r11 */ + entry->jump[0] = 0x3d800000+((val+0x8000)>>16); /* lis r12,sym@ha */ + entry->jump[1] = 0x398c0000 + (val&0xffff); /* addi r12,r12,sym@l*/ + entry->jump[2] = 0x7d8903a6; /* mtctr r12 */ entry->jump[3] = 0x4e800420; /* bctr */ DEBUGP("Initialized plt for 0x%x at %p\n", val, entry); |