Re: [PATCH v2 2/3] memory: export symbols for memory related functions

From: Wei-chin Tsai (蔡維晉)
Date: Wed Jun 14 2023 - 11:54:08 EST


On Wed, 2023-06-14 at 14:11 +0200, AngeloGioacchino Del Regno wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> Il 14/06/23 11:59, Wei-chin Tsai (蔡維晉) ha scritto:
> > On Wed, 2023-06-14 at 08:16 +0100, Russell King (Oracle) wrote:
> >>
> >> External email : Please do not click links or open attachments
> until
> >> you have verified the sender or the content.
> >> On Wed, Jun 14, 2023 at 11:20:34AM +0800, Wei Chin Tsai wrote:
> >>> diff --git a/arch/arm/kernel/process.c
> b/arch/arm/kernel/process.c
> >>> index 0e8ff85890ad..df91412a1069 100644
> >>> --- a/arch/arm/kernel/process.c
> >>> +++ b/arch/arm/kernel/process.c
> >>> @@ -343,6 +343,7 @@ const char *arch_vma_name(struct
> vm_area_struct
> >> *vma)
> >>> {
> >>> return is_gate_vma(vma) ? "[vectors]" : NULL;
> >>> }
> >>> +EXPORT_SYMBOL_GPL(arch_vma_name);
> >> ...
> >>> diff --git a/kernel/signal.c b/kernel/signal.c
> >>> index b5370fe5c198..a1abe77fcdc3 100644
> >>> --- a/kernel/signal.c
> >>> +++ b/kernel/signal.c
> >>> @@ -4700,6 +4700,7 @@ __weak const char *arch_vma_name(struct
> >> vm_area_struct *vma)
> >>> {
> >>> return NULL;
> >>> }
> >>> +EXPORT_SYMBOL_GPL(arch_vma_name);
> >>
> >> Have you confirmed:
> >> 1) whether this actually builds
> >> 2) whether this results in one or two arch_vma_name exports
> >>
> >> ?
> >>
> >> --
> >> RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
> >> FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
> >
> > Hi Russell,
> >
> > We did confirm that it can be built successfully in kernel 6.1 and
> run
> > well in our system.
> >
>
> It runs well in your system and can be built successfully because
> you're building
> for ARM64, not for ARM...
>
> > Actually, we only use this export symbol "arch_vma_name"
> > from kernel/signal.c in arm64. We also export symbol for
> arch_vma_name
> > in arch/arm/kernel/process.c because that, one day in the
> future, we
> > are afraid that we also need this function in arm platform.
> >
> > Thanks.
> >
> > Regards,
> >
> > Jim
> >
>

Hi Russell and Angelo,

Please use the following patch to see if the problem still exists.
Thanks.

From 150162ce2365557710e9ac8ef62c59f870ffbbb0 Mon Sep 17 00:00:00 2001
From: Wei Chin Tsai <Wei-chin.Tsai@xxxxxxxxxxxx>
Date: Wed, 14 Jun 2023 23:31:02 +0800
Subject: [PATCH v3 1/1] memory: Fix export symbol twice compiler error
for
"export symbols for memory related functions" patch

User could not add the export symbol "arch_vma_name"
in arch/arm/kernel/process.c and kernel/signal.c both.
It would cause the export symbol twice compiler error
Reported-by: kernel test robot <lkp@xxxxxxxxx>

Signed-off-by: Wei Chin Tsai <Wei-chin.Tsai@xxxxxxxxxxxx>
---
arch/arm/kernel/process.c | 3 +++
kernel/signal.c | 3 +++
2 files changed, 6 insertions(+)

diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index df91412a1069..d71a9bafb584 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -343,7 +343,10 @@ const char *arch_vma_name(struct vm_area_struct
*vma)
{
return is_gate_vma(vma) ? "[vectors]" : NULL;
}
+
+#ifdef CONFIG_ARM
EXPORT_SYMBOL_GPL(arch_vma_name);
+#endif

/* If possible, provide a placement hint at a random offset from the
* stack for the sigpage and vdso pages.
diff --git a/kernel/signal.c b/kernel/signal.c
index a1abe77fcdc3..f7d03450781e 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -4700,7 +4700,10 @@ __weak const char *arch_vma_name(struct
vm_area_struct *vma)
{
return NULL;
}
+
+#ifdef CONFIG_ARM64
EXPORT_SYMBOL_GPL(arch_vma_name);
+#endif

static inline void siginfo_buildtime_checks(void)
{
--
2.18.0

Regards,

Jim
>