* [STABLE][PATCH] linux/export: fix reference to exported functions for parisc64
@ 2023-09-14 16:52 Helge Deller
2023-09-16 11:34 ` Greg Kroah-Hartman
0 siblings, 1 reply; 2+ messages in thread
From: Helge Deller @ 2023-09-14 16:52 UTC (permalink / raw)
To: stable, Greg Kroah-Hartman; +Cc: Masahiro Yamada, John David Anglin
Hi Greg,
could you please cherry-pick this upstream commit:
08700ec70504 ("linux/export: fix reference to exported functions for parisc64")
to the v6.5 stable kernel series?
Thanks!
Helge
---
From 08700ec705043eb0cee01b35cf5b9d63f0230d12 Mon Sep 17 00:00:00 2001
From: Masahiro Yamada <masahiroy@kernel.org>
Date: Wed, 6 Sep 2023 03:46:57 +0900
Subject: [PATCH] linux/export: fix reference to exported functions for
parisc64
John David Anglin reported parisc has been broken since commit
ddb5cdbafaaa ("kbuild: generate KSYMTAB entries by modpost").
Like ia64, parisc64 uses a function descriptor. The function
references must be prefixed with P%.
Also, symbols prefixed $$ from the library have the symbol type
STT_LOPROC instead of STT_FUNC. They should be handled as functions
too.
Fixes: ddb5cdbafaaa ("kbuild: generate KSYMTAB entries by modpost")
Reported-by: John David Anglin <dave.anglin@bell.net>
Tested-by: John David Anglin <dave.anglin@bell.net>
Tested-by: Helge Deller <deller@gmx.de>
Closes: https://lore.kernel.org/linux-parisc/1901598a-e11d-f7dd-a5d9-9a69d06e6b6e@bell.net/T/#u
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Helge Deller <deller@gmx.de>
diff --git a/include/linux/export-internal.h b/include/linux/export-internal.h
index 1c849db953a5..45fca09b2319 100644
--- a/include/linux/export-internal.h
+++ b/include/linux/export-internal.h
@@ -52,6 +52,8 @@
#ifdef CONFIG_IA64
#define KSYM_FUNC(name) @fptr(name)
+#elif defined(CONFIG_PARISC) && defined(CONFIG_64BIT)
+#define KSYM_FUNC(name) P%name
#else
#define KSYM_FUNC(name) name
#endif
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index b29b29707f10..ba981f22908a 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1226,6 +1226,15 @@ static void check_export_symbol(struct module *mod, struct elf_info *elf,
*/
s->is_func = (ELF_ST_TYPE(sym->st_info) == STT_FUNC);
+ /*
+ * For parisc64, symbols prefixed $$ from the library have the symbol type
+ * STT_LOPROC. They should be handled as functions too.
+ */
+ if (elf->hdr->e_ident[EI_CLASS] == ELFCLASS64 &&
+ elf->hdr->e_machine == EM_PARISC &&
+ ELF_ST_TYPE(sym->st_info) == STT_LOPROC)
+ s->is_func = true;
+
if (match(secname, PATTERNS(INIT_SECTIONS)))
warn("%s: %s: EXPORT_SYMBOL used for init symbol. Remove __init or EXPORT_SYMBOL.\n",
mod->name, name);
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [STABLE][PATCH] linux/export: fix reference to exported functions for parisc64
2023-09-14 16:52 [STABLE][PATCH] linux/export: fix reference to exported functions for parisc64 Helge Deller
@ 2023-09-16 11:34 ` Greg Kroah-Hartman
0 siblings, 0 replies; 2+ messages in thread
From: Greg Kroah-Hartman @ 2023-09-16 11:34 UTC (permalink / raw)
To: Helge Deller; +Cc: stable, Masahiro Yamada, John David Anglin
On Thu, Sep 14, 2023 at 06:52:45PM +0200, Helge Deller wrote:
> Hi Greg,
>
> could you please cherry-pick this upstream commit:
>
> 08700ec70504 ("linux/export: fix reference to exported functions for parisc64")
>
> to the v6.5 stable kernel series?
Now queued up, thanks.
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-09-16 11:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-14 16:52 [STABLE][PATCH] linux/export: fix reference to exported functions for parisc64 Helge Deller
2023-09-16 11:34 ` Greg Kroah-Hartman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox