]> git.hungrycats.org Git - linux/commitdiff
modpost: disallow *driver to reference .meminit* sections
authorMasahiro Yamada <masahiroy@kernel.org>
Sun, 22 Oct 2023 17:06:06 +0000 (02:06 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Dec 2024 09:32:58 +0000 (10:32 +0100)
[ Upstream commit 50cccec15c48814765895891ca0d95d989b6a419 ]

Drivers must not reference .meminit* sections, which are discarded
when CONFIG_MEMORY_HOTPLUG=n.

The reason for whitelisting "*driver" in the section mismatch check
was to allow drivers to reference symbols annotated as __devinit or
__devexit that existed in the past.

Those annotations were removed by the following commits:

 - 54b956b90360 ("Remove __dev* markings from init.h")
 - 92e9e6d1f984 ("modpost.c: Stop checking __dev* section mismatches")

Remove the stale whitelist.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Stable-dep-of: bb43a59944f4 ("Rename .data.unlikely to .data..unlikely")
Signed-off-by: Sasha Levin <sashal@kernel.org>
scripts/mod/modpost.c

index f6cbf70e455eebe02ba1080833cc398d41f709d3..7e88e6437540efee64299cfbffdf88a5c8e2fdcf 100644 (file)
@@ -1007,12 +1007,6 @@ static int secref_whitelist(const char *fromsec, const char *fromsym,
                                    "*_console")))
                return 0;
 
-       /* symbols in data sections that may refer to meminit sections */
-       if (match(fromsec, PATTERNS(DATA_SECTIONS)) &&
-           match(tosec, PATTERNS(ALL_XXXINIT_SECTIONS)) &&
-           match(fromsym, PATTERNS("*driver")))
-               return 0;
-
        /*
         * symbols in data sections must not refer to .exit.*, but there are
         * quite a few offenders, so hide these unless for W=1 builds until