[PATCH] S3C: Remove unneeded __init symbols

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Wed Jan 13 09:57:05 EST 2010


Hello,

On Wed, Jan 13, 2010 at 09:39:11AM -0500, Nelson Castillo wrote:
> 2010/1/9 Uwe Kleine-König <u.kleine-koenig at pengutronix.de>:
> > Hi Nelson,
> >
> > On Sat, Jan 09, 2010 at 05:04:30AM -0500, Nelson Castillo wrote:
> >> Two functions defined with __init are also exported.
> >> Let's remove the __init symbols in order to avoid two warnings.
> > Can you quote the warnings please?
> 
> Done. Patch attached.
> 
> > And I thought you agreed that "unneeded" for __init isn't optimal.
> 
> I also changed the subject. I don't know if it's optimal but it's
> better now IMHO :-P

> From 0253f8900cba96ef1a5a8707ad1934f0a65f052a Mon Sep 17 00:00:00 2001
> From: Nelson Castillo <arhuaco at freaks-unidos.net>
> Date: Wed, 13 Jan 2010 09:33:59 -0500
> Subject: [PATCH] S3C: Fix two warnings caused by __init annotations
> 
> The symbols s3c24xx_ts_set_platdata and s3c_nand_set_platdata are
> exported and annotated __init. Let's remove the __init annotations
> to avoid the following warnings:
> 
>  WARNING: vmlinux.o(__ksymtab+0x428): Section mismatch in
>  reference from the variable __ksymtab_s3c24xx_ts_set_platdata
>  to the function .init.text:s3c24xx_ts_set_platdata()
>  The symbol  s3c24xx_ts_set_platdata is exported and annotated __init
>  Fix this by  removing the __init annotation of s3c24xx_ts_set_platdata
>  or drop the  export.
> 
>  WARNING: vmlinux.o(__ksymtab_gpl+0x40): Section mismatch in reference
>  from the variable __ksymtab_s3c_nand_set_platdata to the function
>  .init.text:s3c_nand_set_platdata()
>  The symbol s3c_nand_set_platdata  is exported and annotated __init
>  Fix this by removing the __init  annotation of s3c_nand_set_platdata
>  or drop the export.

	linux-2.6$ git grep -l -E 's3c(_nand|24xx_ts)_set_platdata'
	arch/arm/mach-s3c2410/include/mach/ts.h
	arch/arm/mach-s3c2410/mach-bast.c
	arch/arm/mach-s3c2410/mach-h1940.c
	arch/arm/mach-s3c2410/mach-qt2410.c
	arch/arm/mach-s3c2412/mach-jive.c
	arch/arm/mach-s3c2412/mach-vstms.c
	arch/arm/mach-s3c2440/mach-anubis.c
	arch/arm/mach-s3c2440/mach-at2440evb.c
	arch/arm/mach-s3c2440/mach-mini2440.c
	arch/arm/mach-s3c2440/mach-osiris.c
	arch/arm/mach-s3c2440/mach-rx3715.c
	arch/arm/mach-s3c2442/mach-gta02.c
	arch/arm/mach-s3c6410/mach-hmt.c
	arch/arm/plat-s3c/dev-nand.c
	arch/arm/plat-s3c/include/plat/nand.h
	arch/arm/plat-s3c24xx/common-smdk.c
	arch/arm/plat-s3c24xx/devs.c

This doesn't look to used in code that can be compiled as module.  So
isn't the more sensible fix to remove EXPORT_SYMBOL?

Best regards
Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list