Re: 2.6.17-mm2

Russell King
2006-07-03T13:50:04Z

On Sun, Jul 02, 2006 at 10:50:24PM -0700, Randy.Dunlap wrote:
> On Sun, 2 Jul 2006 11:11:46 +0100 Russell King wrote:
> > On Fri, Jun 30, 2006 at 12:38:13AM -0700, Randy.Dunlap wrote:
> > > Until modpost (or whatever) can do this, here are a few that
> > > a shell script has found for me by examing source code only --
> > > may contain some false reports:
> > >
> ...
> > > ./arch/arm/mach-imx/generic.c:196:EXPORT_SYMBOL(imx_set_mmc_info);
> > > ./arch/arm/mach-imx/generic.c:192:void __init imx_set_mmc_info(struct imxmmc_platform_data *info)
> > >
> > > ./arch/arm/mach-imx/generic.c:204:EXPORT_SYMBOL(set_imx_fb_info);
> > > ./arch/arm/mach-imx/generic.c:200:void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info)
> > >
> > These are definitely buggy.
>
> Um, well, I could blindly remove those __init sections, but in
> looking at the code, set_imx_fb_info() is not ever used, and
> imx_set_mmc_info() is called from some __init code...
>
> It looks like this code can only be built-in, not as a loadable
> module. (so someone who knows it should jump in here)
> If that's correct, then the EXPORT_SYMBOL() isn't even needed
> and the function can remain as __init (right?).

Since they're being used to set the platform data for devices, which
are registered during the init time, they should definitely only be
called early on during init - otherwise you're potentially changing
data which drivers expect to be static.

So the exports should go.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core