mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 15:03:52 +08:00
init/modpost: conditionally check section mismatch to __meminit*
This reverts commit eb8f689046 ("Use separate sections for __dev/
_cpu/__mem code/data").
Check section mismatch to __meminit* only when CONFIG_MEMORY_HOTPLUG=n.
With this change, the linker script and modpost become simpler, and we
can get rid of the __ref annotations from the memory hotplug code.
[sfr@canb.auug.org.au: remove MEM_KEEP from arch/powerpc/kernel/vmlinux.lds.S]
Link: https://lkml.kernel.org/r/20240710093213.2aefb25f@canb.auug.org.au
Link: https://lkml.kernel.org/r/20240706160511.2331061-2-masahiroy@kernel.org
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
7a7127aa33
commit
73db3abdca
@@ -776,17 +776,14 @@ static void check_section(const char *modname, struct elf_info *elf,
|
||||
|
||||
|
||||
#define ALL_INIT_DATA_SECTIONS \
|
||||
".init.setup", ".init.rodata", ".meminit.rodata", \
|
||||
".init.data", ".meminit.data"
|
||||
".init.setup", ".init.rodata", ".init.data"
|
||||
|
||||
#define ALL_PCI_INIT_SECTIONS \
|
||||
".pci_fixup_early", ".pci_fixup_header", ".pci_fixup_final", \
|
||||
".pci_fixup_enable", ".pci_fixup_resume", \
|
||||
".pci_fixup_resume_early", ".pci_fixup_suspend"
|
||||
|
||||
#define ALL_XXXINIT_SECTIONS ".meminit.*"
|
||||
|
||||
#define ALL_INIT_SECTIONS INIT_SECTIONS, ALL_XXXINIT_SECTIONS
|
||||
#define ALL_INIT_SECTIONS ".init.*"
|
||||
#define ALL_EXIT_SECTIONS ".exit.*"
|
||||
|
||||
#define DATA_SECTIONS ".data", ".data.rel"
|
||||
@@ -797,9 +794,7 @@ static void check_section(const char *modname, struct elf_info *elf,
|
||||
".fixup", ".entry.text", ".exception.text", \
|
||||
".coldtext", ".softirqentry.text"
|
||||
|
||||
#define INIT_SECTIONS ".init.*"
|
||||
|
||||
#define ALL_TEXT_SECTIONS ".init.text", ".meminit.text", ".exit.text", \
|
||||
#define ALL_TEXT_SECTIONS ".init.text", ".exit.text", \
|
||||
TEXT_SECTIONS, OTHER_TEXT_SECTIONS
|
||||
|
||||
enum mismatch {
|
||||
@@ -839,12 +834,6 @@ static const struct sectioncheck sectioncheck[] = {
|
||||
.bad_tosec = { ALL_INIT_SECTIONS, ALL_EXIT_SECTIONS, NULL },
|
||||
.mismatch = TEXTDATA_TO_ANY_INIT_EXIT,
|
||||
},
|
||||
/* Do not reference init code/data from meminit code/data */
|
||||
{
|
||||
.fromsec = { ALL_XXXINIT_SECTIONS, NULL },
|
||||
.bad_tosec = { INIT_SECTIONS, NULL },
|
||||
.mismatch = XXXINIT_TO_SOME_INIT,
|
||||
},
|
||||
/* Do not use exit code/data from init code */
|
||||
{
|
||||
.fromsec = { ALL_INIT_SECTIONS, NULL },
|
||||
@@ -859,7 +848,7 @@ static const struct sectioncheck sectioncheck[] = {
|
||||
},
|
||||
{
|
||||
.fromsec = { ALL_PCI_INIT_SECTIONS, NULL },
|
||||
.bad_tosec = { INIT_SECTIONS, NULL },
|
||||
.bad_tosec = { ALL_INIT_SECTIONS, NULL },
|
||||
.mismatch = ANY_INIT_TO_ANY_EXIT,
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user