[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2cd3947a-63d9-4a79-a24a-eb1ae8164169@suse.com>
Date: Tue, 17 Jun 2025 11:27:39 +0200
From: Petr Pavlu <petr.pavlu@...e.com>
To: Casey Chen <cachen@...estorage.com>
Cc: akpm@...ux-foundation.org, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, linux-modules@...r.kernel.org,
linux-arch@...r.kernel.org, surenb@...gle.com, kent.overstreet@...ux.dev,
arnd@...db.de, mcgrof@...nel.org, pasha.tatashin@...een.com,
yzhong@...estorage.com
Subject: Re: [PATCH] alloc_tag: remove empty module tag section
On 6/10/25 6:22 PM, Casey Chen wrote:
> The empty MOD_CODETAG_SECTIONS() macro added an incomplete .data
> section in module linker script, which caused symbol lookup tools
> like gdb to misinterpret symbol addresses e.g., __ib_process_cq
> incorrectly mapping to unrelated functions like below.
>
> (gdb) disas __ib_process_cq
> Dump of assembler code for function trace_event_fields_cq_schedule:
>
> Removing the empty section restores proper symbol resolution and
> layout, ensuring .data placement behaves as expected.
The patch looks ok me, but I'm somewhat confused about the problem.
I think a linker should not add an empty output section if it doesn't
contain anything, or if .data actually contains something then the extra
dummy definition should be also harmless?
This also reminds me of my previous related fix "codetag: Avoid unused
alloc_tags sections/symbols" [1] which fell through the cracks. I can
rebase it on top of this patch.
[1] https://lore.kernel.org/all/20250313143002.9118-1-petr.pavlu@suse.com/
--
Thanks,
Petr
Powered by blists - more mailing lists