Message ID | 1481043967-15602-4-git-send-email-abelvesa@linux.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Abel, [auto build test ERROR on linus/master] [also build test ERROR on v4.9-rc8 next-20161206] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Abel-Vesa/arm-Add-livepatch-support/20161207-074210 config: arm-simpad_defconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm Note: the linux-review/Abel-Vesa/arm-Add-livepatch-support/20161207-074210 HEAD 49113edc744f38a682a4afa9e904384bb00f2988 builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): >> arch/arm/kernel/module.c:55:1: error: redefinition of 'apply_relocate_add' apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, ^~~~~~~~~~~~~~~~~~ In file included from arch/arm/kernel/module.c:14:0: include/linux/moduleloader.h:65:19: note: previous definition of 'apply_relocate_add' was here static inline int apply_relocate_add(Elf_Shdr *sechdrs, ^~~~~~~~~~~~~~~~~~ vim +/apply_relocate_add +55 arch/arm/kernel/module.c 49 GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE, 50 __builtin_return_address(0)); 51 } 52 #endif 53 54 int > 55 apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, 56 unsigned int symindex, unsigned int relindex, 57 struct module *module) 58 { --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
+++ Abel Vesa [06/12/16 17:06 +0000]: >It was only added to fix compiler error. It is not implemented >yet. > >Signed-off-by: Abel Vesa <abelvesa@linux.com> >--- > arch/arm/kernel/module.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > >diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c >index 4f14b5c..bf94922 100644 >--- a/arch/arm/kernel/module.c >+++ b/arch/arm/kernel/module.c >@@ -52,6 +52,15 @@ void *module_alloc(unsigned long size) > #endif > > int >+apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, >+ unsigned int symindex, unsigned int relindex, >+ struct module *module) >+{ >+ /* Not implemented yet */ >+ return 0; >+} Are SHT_RELA relocation sections actually supported on 32-bit arm? It looks like there's only support for SHT_REL. arch/arm/Kconfig:84: select MODULES_USE_ELF_REL If we support SHT_REL sections, the correct fix is to probably have klp_write_object_relocations() check if the relocation section is SHT_REL or SHT_RELA, and call the appropriate function (apply_relocate or apply_relocate_add), similar to how the module loader does it. Jessica
On Mon, 16 Jan 2017, Jessica Yu wrote: > +++ Abel Vesa [06/12/16 17:06 +0000]: > > It was only added to fix compiler error. It is not implemented > > yet. > > > > Signed-off-by: Abel Vesa <abelvesa@linux.com> > > --- > > arch/arm/kernel/module.c | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c > > index 4f14b5c..bf94922 100644 > > --- a/arch/arm/kernel/module.c > > +++ b/arch/arm/kernel/module.c > > @@ -52,6 +52,15 @@ void *module_alloc(unsigned long size) > > #endif > > > > int > > +apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, > > + unsigned int symindex, unsigned int relindex, > > + struct module *module) > > +{ > > + /* Not implemented yet */ > > + return 0; > > +} > > Are SHT_RELA relocation sections actually supported on 32-bit arm? It looks > like there's only support for SHT_REL. > > arch/arm/Kconfig:84: select MODULES_USE_ELF_REL > > If we support SHT_REL sections, the correct fix is to probably have > klp_write_object_relocations() check if the relocation section is > SHT_REL or SHT_RELA, and call the appropriate function (apply_relocate > or apply_relocate_add), similar to how the module loader does it. Agreed. According to arch/Kconfig and definitions you can use only one of MODULES_USE_ELF_REL and MODULES_USE_ELF_RELA. arm arch uses the former. So yes, I think we should use the same if/else construct from the module loader in klp_write_object_relocations()... and it should go with this patch set, because arm is the first arch to actually use SHT_REL and not SHT_RELA (iiuc). x86, s390 and powerpc (archs we support) use SHT_RELA. Miroslav
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c index 4f14b5c..bf94922 100644 --- a/arch/arm/kernel/module.c +++ b/arch/arm/kernel/module.c @@ -52,6 +52,15 @@ void *module_alloc(unsigned long size) #endif int +apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, + unsigned int symindex, unsigned int relindex, + struct module *module) +{ + /* Not implemented yet */ + return 0; +} + +int apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, unsigned int relindex, struct module *module) {
It was only added to fix compiler error. It is not implemented yet. Signed-off-by: Abel Vesa <abelvesa@linux.com> --- arch/arm/kernel/module.c | 9 +++++++++ 1 file changed, 9 insertions(+)