Thread (33 messages) 33 messages, 6 authors, 2022-02-14

Re: [PATCH v3 04/12] powerpc: Prepare func_desc_t for refactorisation

From: Christophe Leroy <hidden>
Date: 2022-02-14 11:02:43
Also in: linux-arch, linux-mm, lkml


Le 11/02/2022 à 01:54, Kees Cook a écrit :
On Sun, Oct 17, 2021 at 02:38:17PM +0200, Christophe Leroy wrote:
quoted
In preparation of making func_desc_t generic, change the ELFv2
version to a struct containing 'addr' element.

This allows using single helpers common to ELFv1 and ELFv2.

Signed-off-by: Christophe Leroy <redacted>
---
  arch/powerpc/kernel/module_64.c | 32 ++++++++++++++------------------
  1 file changed, 14 insertions(+), 18 deletions(-)
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c
index a89da0ee25e2..b687ef88c4c4 100644
--- a/arch/powerpc/kernel/module_64.c
+++ b/arch/powerpc/kernel/module_64.c
@@ -33,19 +33,13 @@
  #ifdef PPC64_ELF_ABI_v2
  
  /* An address is simply the address of the function. */
-typedef unsigned long func_desc_t;
+typedef struct {
+	unsigned long addr;
+} func_desc_t;
  
  static func_desc_t func_desc(unsigned long addr)
  {
-	return addr;
-}
-static unsigned long func_addr(unsigned long addr)
-{
-	return addr;
-}
-static unsigned long stub_func_addr(func_desc_t func)
-{
-	return func;
+	return (func_desc_t){addr};
There's only 1 element in the struct, so okay, but it hurt my eyes a
little. I would have been happier with:

	return (func_desc_t){ .addr = addr; };

But of course that also looks bonkers because it starts with "return".
So no matter what I do my eyes bug out. ;)

So it's fine either way. :)

Reviewed-by: Kees Cook <redacted>
I am going for:

  static func_desc_t func_desc(unsigned long addr)
  {
+       func_desc_t desc = {
+               .addr = addr,
+       };
+
+       return desc;
  }


Thanks
Christophe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help