]> git.itanic.dy.fi Git - linux-stable/commitdiff
hwmon: (smsc47m1) Mark driver struct with __refdata to prevent section mismatch
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Thu, 7 Dec 2023 14:09:29 +0000 (15:09 +0100)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 2 Jan 2024 16:44:57 +0000 (08:44 -0800)
As described in the added code comment, a reference to .exit.text is ok
for drivers registered via module_platform_driver_probe(). Make this
explicit to prevent the following section mismatch warning

WARNING: modpost: drivers/hwmon/smsc47m1: section mismatch in reference: smsc47m1_driver+0x8 (section: .data) -> smsc47m1_remove (section: .exit.text)

that triggers on an allmodconfig W=1 build.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/57977a88a9b99b6555b227aa4994ac3df10c6490.1701957840.git.u.kleine-koenig@pengutronix.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/smsc47m1.c

index 37531b5c82547c6d79eb2df07ea08c4d5d0312a6..29ea8fb4f35386571d2595fe7b3b455169062783 100644 (file)
@@ -850,7 +850,13 @@ static int __exit smsc47m1_remove(struct platform_device *pdev)
        return 0;
 }
 
-static struct platform_driver smsc47m1_driver = {
+/*
+ * smsc47m1_remove() lives in .exit.text. For drivers registered via
+ * module_platform_driver_probe() this ok because they cannot get unbound at
+ * runtime. The driver needs to be marked with __refdata, otherwise modpost
+ * triggers a section mismatch warning.
+ */
+static struct platform_driver smsc47m1_driver __refdata = {
        .driver = {
                .name   = DRVNAME,
        },