diff mbox series

staging: unisys/visorbus: add __init/__exit annotations

Message ID 20170915192327.414928-1-arnd@arndb.de
State Accepted
Commit 056e4fc2018364ba01a23a1ced0ccbbdfa4520b3
Headers show
Series staging: unisys/visorbus: add __init/__exit annotations | expand

Commit Message

Arnd Bergmann Sept. 15, 2017, 7:23 p.m. UTC
gcc-4.6 causes a harmless warning about the init function:

WARNING: vmlinux.o(.text+0xed62c2): Section mismatch in reference from the function init_unisys() to the function .init.text:visorutil_spar_detect()
The function init_unisys() references
the function __init visorutil_spar_detect().
This is often because init_unisys lacks a __init
annotation or the annotation of visorutil_spar_detect is wrong.

It appears that newer versions inline visorutil_spar_detect(),
end up with an empty __init section. This marks the module
entry points as __init and __exit respectively, which avoids
the warning and slightly reduces the runtime code size.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/staging/unisys/visorbus/visorchipset.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.9.0

Comments

Kershner, David A Sept. 27, 2017, 6:52 p.m. UTC | #1
> -----Original Message-----

> From: Arnd Bergmann [mailto:arnd@arndb.de]

> Sent: Friday, September 15, 2017 3:23 PM

> To: Kershner, David A <David.Kershner@unisys.com>; Greg Kroah-Hartman

> <gregkh@linuxfoundation.org>

> Cc: Arnd Bergmann <arnd@arndb.de>; Sell, Timothy C

> <Timothy.Sell@unisys.com>; Wadgaonkar, Sameer Laxmikant

> <Sameer.Wadgaonkar@unisys.com>; Binder, David Anthony

> <David.Binder@unisys.com>; Thompson, Bryan E.

> <bryan.thompson@unisys.com>; *S-Par-Maintainer

> <SParMaintainer@unisys.com>; devel@driverdev.osuosl.org; linux-

> kernel@vger.kernel.org

> Subject: [PATCH] staging: unisys/visorbus: add __init/__exit annotations

> 

> gcc-4.6 causes a harmless warning about the init function:

> 

> WARNING: vmlinux.o(.text+0xed62c2): Section mismatch in reference from

> the function init_unisys() to the function

.init.text:visorutil_spar_detect()
> The function init_unisys() references

> the function __init visorutil_spar_detect().

> This is often because init_unisys lacks a __init

> annotation or the annotation of visorutil_spar_detect is wrong.

> 

> It appears that newer versions inline visorutil_spar_detect(),

> end up with an empty __init section. This marks the module

> entry points as __init and __exit respectively, which avoids

> the warning and slightly reduces the runtime code size.

> 

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Acked-by: David Kershner <david.kershner@unisys.com>


Thanks,
David Kershner

> ---

>  drivers/staging/unisys/visorbus/visorchipset.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

> 

> diff --git a/drivers/staging/unisys/visorbus/visorchipset.c

> b/drivers/staging/unisys/visorbus/visorchipset.c

> index 74cce4f1a7bd..27ecf6fb49fd 100644

> --- a/drivers/staging/unisys/visorbus/visorchipset.c

> +++ b/drivers/staging/unisys/visorbus/visorchipset.c

> @@ -1826,7 +1826,7 @@ static __init int visorutil_spar_detect(void)

>  	return 0;

>  }

> 

> -static int init_unisys(void)

> +static int __init init_unisys(void)

>  {

>  	int result;

> 

> @@ -1841,7 +1841,7 @@ static int init_unisys(void)

>  	return 0;

>  };

> 

> -static void exit_unisys(void)

> +static void __exit exit_unisys(void)

>  {

>  	acpi_bus_unregister_driver(&unisys_acpi_driver);

>  }

> --

> 2.9.0
diff mbox series

Patch

diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c
index 74cce4f1a7bd..27ecf6fb49fd 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -1826,7 +1826,7 @@  static __init int visorutil_spar_detect(void)
 	return 0;
 }
 
-static int init_unisys(void)
+static int __init init_unisys(void)
 {
 	int result;
 
@@ -1841,7 +1841,7 @@  static int init_unisys(void)
 	return 0;
 };
 
-static void exit_unisys(void)
+static void __exit exit_unisys(void)
 {
 	acpi_bus_unregister_driver(&unisys_acpi_driver);
 }