Commit 7e43195c authored by Casey Chen's avatar Casey Chen Committed by Andrew Morton
Browse files

alloc_tag: remove empty module tag section

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.

Link: https://lkml.kernel.org/r/20250610162258.324645-1-cachen@purestorage.com


Fixes: 0db6f8d7 ("alloc_tag: load module tags into separate contiguous memory")
       22d407b1 ("lib: add allocation tagging support for memory allocation profiling")
Signed-off-by: default avatarCasey Chen <cachen@purestorage.com>
Reviewed-by: default avatarYuanyuan Zhong <yzhong@purestorage.com>
Acked-by: default avatarSuren Baghdasaryan <surenb@google.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Luis Chamberalin <mcgrof@kernel.org>
Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 38b0ece6
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -11,12 +11,6 @@
#define CODETAG_SECTIONS()		\
	SECTION_WITH_BOUNDARIES(alloc_tags)

/*
 * Module codetags which aren't used after module unload, therefore have the
 * same lifespan as the module and can be safely unloaded with the module.
 */
#define MOD_CODETAG_SECTIONS()

#define MOD_SEPARATE_CODETAG_SECTION(_name)	\
	.codetag.##_name : {			\
		SECTION_WITH_BOUNDARIES(_name)	\
+0 −5
Original line number Diff line number Diff line
@@ -52,17 +52,12 @@ SECTIONS {
	.data : {
		*(.data .data.[0-9a-zA-Z_]*)
		*(.data..L*)
		MOD_CODETAG_SECTIONS()
	}

	.rodata : {
		*(.rodata .rodata.[0-9a-zA-Z_]*)
		*(.rodata..L*)
	}
#else
	.data : {
		MOD_CODETAG_SECTIONS()
	}
#endif
	MOD_SEPARATE_CODETAG_SECTIONS()
}