Message ID | 42d2a571677e60082c0a5b3e52e855aa58c0b1fc.1634190022.git.christophe.leroy@csgroup.eu (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Fix LKDTM for PPC64/IA64/PARISC | expand |
Hi Christophe, > 'struct ppc64_opd_entry' doesn't belong to uapi/asm/elf.h > > It was initially in module_64.c and commit 2d291e902791 ("Fix compile > failure with non modular builds") moved it into asm/elf.h > > But it was by mistake added outside of __KERNEL__ section, > therefore commit c3617f72036c ("UAPI: (Scripted) Disintegrate > arch/powerpc/include/asm") moved it to uapi/asm/elf.h As Michael said on v1, I'm a little nervous about moving it out of uAPI after so long, although I do take the points of Arnd and Kees that we're not breaking compiled binaries, nor should people be using this struct to begin with... I've cc:ed the linux-api@ list. Kind regards, Daniel > Move it back into asm/elf.h, this brings it back in line with > IA64 and PARISC architectures. > > Fixes: 2d291e902791 ("Fix compile failure with non modular builds") > Reviewed-by: Kees Cook <keescook@chromium.org> > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> > --- > arch/powerpc/include/asm/elf.h | 6 ++++++ > arch/powerpc/include/uapi/asm/elf.h | 8 -------- > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h > index b8425e3cfd81..a4406714c060 100644 > --- a/arch/powerpc/include/asm/elf.h > +++ b/arch/powerpc/include/asm/elf.h > @@ -176,4 +176,10 @@ do { \ > /* Relocate the kernel image to @final_address */ > void relocate(unsigned long final_address); > > +/* There's actually a third entry here, but it's unused */ > +struct ppc64_opd_entry { > + unsigned long funcaddr; > + unsigned long r2; > +}; > + > #endif /* _ASM_POWERPC_ELF_H */ > diff --git a/arch/powerpc/include/uapi/asm/elf.h b/arch/powerpc/include/uapi/asm/elf.h > index 860c59291bfc..308857123a08 100644 > --- a/arch/powerpc/include/uapi/asm/elf.h > +++ b/arch/powerpc/include/uapi/asm/elf.h > @@ -289,12 +289,4 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[ELF_NVSRHALFREG]; > /* Keep this the last entry. */ > #define R_PPC64_NUM 253 > > -/* There's actually a third entry here, but it's unused */ > -struct ppc64_opd_entry > -{ > - unsigned long funcaddr; > - unsigned long r2; > -}; > - > - > #endif /* _UAPI_ASM_POWERPC_ELF_H */ > -- > 2.31.1
Excerpts from Christophe Leroy's message of October 14, 2021 3:49 pm: > 'struct ppc64_opd_entry' doesn't belong to uapi/asm/elf.h > > It was initially in module_64.c and commit 2d291e902791 ("Fix compile > failure with non modular builds") moved it into asm/elf.h > > But it was by mistake added outside of __KERNEL__ section, > therefore commit c3617f72036c ("UAPI: (Scripted) Disintegrate > arch/powerpc/include/asm") moved it to uapi/asm/elf.h > > Move it back into asm/elf.h, this brings it back in line with > IA64 and PARISC architectures. > > Fixes: 2d291e902791 ("Fix compile failure with non modular builds") > Reviewed-by: Kees Cook <keescook@chromium.org> > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> > --- > arch/powerpc/include/asm/elf.h | 6 ++++++ > arch/powerpc/include/uapi/asm/elf.h | 8 -------- > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h > index b8425e3cfd81..a4406714c060 100644 > --- a/arch/powerpc/include/asm/elf.h > +++ b/arch/powerpc/include/asm/elf.h > @@ -176,4 +176,10 @@ do { \ > /* Relocate the kernel image to @final_address */ > void relocate(unsigned long final_address); > > +/* There's actually a third entry here, but it's unused */ > +struct ppc64_opd_entry { > + unsigned long funcaddr; > + unsigned long r2; > +}; Reviewed-by: Nicholas Piggin <npiggin@gmail.com> I wonder if we should add that third entry, just for completeness. And 'r2' isn't a good name should probably be toc. And should it be packed? At any rate that's not for your series, a cleanup I might think about for later. Thanks, Nick
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h index b8425e3cfd81..a4406714c060 100644 --- a/arch/powerpc/include/asm/elf.h +++ b/arch/powerpc/include/asm/elf.h @@ -176,4 +176,10 @@ do { \ /* Relocate the kernel image to @final_address */ void relocate(unsigned long final_address); +/* There's actually a third entry here, but it's unused */ +struct ppc64_opd_entry { + unsigned long funcaddr; + unsigned long r2; +}; + #endif /* _ASM_POWERPC_ELF_H */ diff --git a/arch/powerpc/include/uapi/asm/elf.h b/arch/powerpc/include/uapi/asm/elf.h index 860c59291bfc..308857123a08 100644 --- a/arch/powerpc/include/uapi/asm/elf.h +++ b/arch/powerpc/include/uapi/asm/elf.h @@ -289,12 +289,4 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[ELF_NVSRHALFREG]; /* Keep this the last entry. */ #define R_PPC64_NUM 253 -/* There's actually a third entry here, but it's unused */ -struct ppc64_opd_entry -{ - unsigned long funcaddr; - unsigned long r2; -}; - - #endif /* _UAPI_ASM_POWERPC_ELF_H */