diff mbox series

acpi: arm64: fix section mismatch warning

Message ID 20210927141921.1760209-1-arnd@kernel.org (mailing list archive)
State Not Applicable, archived
Headers show
Series acpi: arm64: fix section mismatch warning | expand

Commit Message

Arnd Bergmann Sept. 27, 2021, 2:19 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

In a gcc-11 randconfig build I came across this warning:

WARNING: modpost: vmlinux.o(.text.unlikely+0x2c084): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
The function next_platform_timer() references
the variable __initdata acpi_gtdt_desc.
This is often because next_platform_timer lacks a __initdata
annotation or the annotation of acpi_gtdt_desc is wrong.

This happens when next_platform_timer() fails to get inlined
despite the inline annotation. Adding '__init' solves the issue,
and it seems best to remove the 'inline' in the process seems
better anyway.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/acpi/arm64/gtdt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Hanjun Guo Oct. 12, 2021, 7:03 a.m. UTC | #1
Hi Arnd,

On 2021/9/27 22:19, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> In a gcc-11 randconfig build I came across this warning:
> 
> WARNING: modpost: vmlinux.o(.text.unlikely+0x2c084): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
> The function next_platform_timer() references
> the variable __initdata acpi_gtdt_desc.
> This is often because next_platform_timer lacks a __initdata
> annotation or the annotation of acpi_gtdt_desc is wrong.
> 
> This happens when next_platform_timer() fails to get inlined
> despite the inline annotation. Adding '__init' solves the issue,
> and it seems best to remove the 'inline' in the process seems
> better anyway.

There was a patch to fix this issue as well [1],
but not merged yet.

[1]: 
https://lore.kernel.org/linux-acpi/7f29a149-e005-f13f-2cc4-a9eb737107e1@huawei.com/T/

Thanks
Hanjun
Arnd Bergmann Oct. 12, 2021, 7:20 a.m. UTC | #2
On Tue, Oct 12, 2021 at 9:03 AM Hanjun Guo <guohanjun@huawei.com> wrote:
> On 2021/9/27 22:19, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > In a gcc-11 randconfig build I came across this warning:
> >
> > WARNING: modpost: vmlinux.o(.text.unlikely+0x2c084): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
> > The function next_platform_timer() references
> > the variable __initdata acpi_gtdt_desc.
> > This is often because next_platform_timer lacks a __initdata
> > annotation or the annotation of acpi_gtdt_desc is wrong.
> >
> > This happens when next_platform_timer() fails to get inlined
> > despite the inline annotation. Adding '__init' solves the issue,
> > and it seems best to remove the 'inline' in the process seems
> > better anyway.
>
> There was a patch to fix this issue as well [1],
> but not merged yet.
>
> [1]:
> https://lore.kernel.org/linux-acpi/7f29a149-e005-f13f-2cc4-a9eb737107e1@huawei.com/T/

Right, either of those patches should be fine.

Rafael, can you pick one of them up?

       Arnd
Rafael J. Wysocki Oct. 12, 2021, 2:16 p.m. UTC | #3
On Tue, Oct 12, 2021 at 9:20 AM Arnd Bergmann <arnd@kernel.org> wrote:
>
> On Tue, Oct 12, 2021 at 9:03 AM Hanjun Guo <guohanjun@huawei.com> wrote:
> > On 2021/9/27 22:19, Arnd Bergmann wrote:
> > > From: Arnd Bergmann <arnd@arndb.de>
> > >
> > > In a gcc-11 randconfig build I came across this warning:
> > >
> > > WARNING: modpost: vmlinux.o(.text.unlikely+0x2c084): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
> > > The function next_platform_timer() references
> > > the variable __initdata acpi_gtdt_desc.
> > > This is often because next_platform_timer lacks a __initdata
> > > annotation or the annotation of acpi_gtdt_desc is wrong.
> > >
> > > This happens when next_platform_timer() fails to get inlined
> > > despite the inline annotation. Adding '__init' solves the issue,
> > > and it seems best to remove the 'inline' in the process seems
> > > better anyway.
> >
> > There was a patch to fix this issue as well [1],
> > but not merged yet.
> >
> > [1]:
> > https://lore.kernel.org/linux-acpi/7f29a149-e005-f13f-2cc4-a9eb737107e1@huawei.com/T/
>
> Right, either of those patches should be fine.
>
> Rafael, can you pick one of them up?

I can, but arm54 ACPI changes go in via arm64 as a rule.
Catalin Marinas Oct. 12, 2021, 4:30 p.m. UTC | #4
On Tue, Oct 12, 2021 at 03:03:29PM +0800, Hanjun Guo wrote:
> Hi Arnd,
> 
> On 2021/9/27 22:19, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> > 
> > In a gcc-11 randconfig build I came across this warning:
> > 
> > WARNING: modpost: vmlinux.o(.text.unlikely+0x2c084): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
> > The function next_platform_timer() references
> > the variable __initdata acpi_gtdt_desc.
> > This is often because next_platform_timer lacks a __initdata
> > annotation or the annotation of acpi_gtdt_desc is wrong.
> > 
> > This happens when next_platform_timer() fails to get inlined
> > despite the inline annotation. Adding '__init' solves the issue,
> > and it seems best to remove the 'inline' in the process seems
> > better anyway.
> 
> There was a patch to fix this issue as well [1],
> but not merged yet.
> 
> [1]: https://lore.kernel.org/linux-acpi/7f29a149-e005-f13f-2cc4-a9eb737107e1@huawei.com/T/

I haven't seen this one, it was on linux-acpi list which I don't follow.
I usually rely you, Lorenzo or Sudeep to ack such patches and cc
Will/me.
Catalin Marinas Oct. 12, 2021, 4:45 p.m. UTC | #5
On Tue, Oct 12, 2021 at 04:16:09PM +0200, Rafael J. Wysocki wrote:
> On Tue, Oct 12, 2021 at 9:20 AM Arnd Bergmann <arnd@kernel.org> wrote:
> >
> > On Tue, Oct 12, 2021 at 9:03 AM Hanjun Guo <guohanjun@huawei.com> wrote:
> > > On 2021/9/27 22:19, Arnd Bergmann wrote:
> > > > From: Arnd Bergmann <arnd@arndb.de>
> > > >
> > > > In a gcc-11 randconfig build I came across this warning:
> > > >
> > > > WARNING: modpost: vmlinux.o(.text.unlikely+0x2c084): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
> > > > The function next_platform_timer() references
> > > > the variable __initdata acpi_gtdt_desc.
> > > > This is often because next_platform_timer lacks a __initdata
> > > > annotation or the annotation of acpi_gtdt_desc is wrong.
> > > >
> > > > This happens when next_platform_timer() fails to get inlined
> > > > despite the inline annotation. Adding '__init' solves the issue,
> > > > and it seems best to remove the 'inline' in the process seems
> > > > better anyway.
> > >
> > > There was a patch to fix this issue as well [1],
> > > but not merged yet.
> > >
> > > [1]:
> > > https://lore.kernel.org/linux-acpi/7f29a149-e005-f13f-2cc4-a9eb737107e1@huawei.com/T/
> >
> > Right, either of those patches should be fine.
> >
> > Rafael, can you pick one of them up?
> 
> I can, but arm54 ACPI changes go in via arm64 as a rule.

Queued as https://git.kernel.org/arm64/c/596143e3aec3
Lorenzo Pieralisi Oct. 13, 2021, 9:02 a.m. UTC | #6
On Tue, Oct 12, 2021 at 03:03:29PM +0800, Hanjun Guo wrote:
> Hi Arnd,
> 
> On 2021/9/27 22:19, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> > 
> > In a gcc-11 randconfig build I came across this warning:
> > 
> > WARNING: modpost: vmlinux.o(.text.unlikely+0x2c084): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
> > The function next_platform_timer() references
> > the variable __initdata acpi_gtdt_desc.
> > This is often because next_platform_timer lacks a __initdata
> > annotation or the annotation of acpi_gtdt_desc is wrong.
> > 
> > This happens when next_platform_timer() fails to get inlined
> > despite the inline annotation. Adding '__init' solves the issue,
> > and it seems best to remove the 'inline' in the process seems
> > better anyway.
> 
> There was a patch to fix this issue as well [1],
> but not merged yet.
> 
> [1]: https://lore.kernel.org/linux-acpi/7f29a149-e005-f13f-2cc4-a9eb737107e1@huawei.com/T/

My bad, we did not coordinate well - I noticed your Acked-by but as a
rule we should also CC LAKML and Catalin/Will (if they aren't CCed) on
the reply to make sure they can actually see it.

Lorenzo
Hanjun Guo Oct. 15, 2021, 8:53 a.m. UTC | #7
On 2021/10/13 17:02, Lorenzo Pieralisi wrote:
> On Tue, Oct 12, 2021 at 03:03:29PM +0800, Hanjun Guo wrote:
>> Hi Arnd,
>>
>> On 2021/9/27 22:19, Arnd Bergmann wrote:
>>> From: Arnd Bergmann <arnd@arndb.de>
>>>
>>> In a gcc-11 randconfig build I came across this warning:
>>>
>>> WARNING: modpost: vmlinux.o(.text.unlikely+0x2c084): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
>>> The function next_platform_timer() references
>>> the variable __initdata acpi_gtdt_desc.
>>> This is often because next_platform_timer lacks a __initdata
>>> annotation or the annotation of acpi_gtdt_desc is wrong.
>>>
>>> This happens when next_platform_timer() fails to get inlined
>>> despite the inline annotation. Adding '__init' solves the issue,
>>> and it seems best to remove the 'inline' in the process seems
>>> better anyway.
>>
>> There was a patch to fix this issue as well [1],
>> but not merged yet.
>>
>> [1]: https://lore.kernel.org/linux-acpi/7f29a149-e005-f13f-2cc4-a9eb737107e1@huawei.com/T/
> 
> My bad, we did not coordinate well - I noticed your Acked-by but as a
> rule we should also CC LAKML and Catalin/Will (if they aren't CCed) on
> the reply to make sure they can actually see it.

It's my bad. I will make sure LAKML and Catalin/Will are CCed next time
when I reply the email.

Thanks
Hanjun
diff mbox series

Patch

diff --git a/drivers/acpi/arm64/gtdt.c b/drivers/acpi/arm64/gtdt.c
index 0a0a982f9c28..c3ad42470a7c 100644
--- a/drivers/acpi/arm64/gtdt.c
+++ b/drivers/acpi/arm64/gtdt.c
@@ -36,7 +36,7 @@  struct acpi_gtdt_descriptor {
 
 static struct acpi_gtdt_descriptor acpi_gtdt_desc __initdata;
 
-static inline void *next_platform_timer(void *platform_timer)
+static __init void *next_platform_timer(void *platform_timer)
 {
 	struct acpi_gtdt_header *gh = platform_timer;