On Fri, 14 Mar 2008, Davide Madrisan wrote:
> > are you sure about the above? can you point at a sample source file
> > somewhere in the kernel tree that allows __initdata to be applied to
> > module parameters? i've just never seen that. maybe i haven't looked
> > hard enough.
>
> I've found a few examples (linux 2.6.23):
>
> drivers/char/agp/amd64-agp.c
> drivers/char/hw_random/intel-rng.c
> drivers/char/watchdog/sa1100_wdt.c
> drivers/s390/block/xpram.c
> drivers/scsi/gdth.c
> drivers/video/vfb.c
>
> and
>
> sound/oss/ad1848.c
> sound/oss/aedsp16.c
> sound/oss/msnd_pinnacle.c
> sound/oss/pas2_card.c
> sound/oss/pss.c
> sound/oss/sb_card.c
> sound/oss/sscape.c
> sound/oss/trix.c
> sound/oss/uart6850.c
> sound/oss/waveartist.c
ah, i think i *might* see what's going on. ignore all the "oss"
stuff, it's going away soon, anyway. consider
drivers/char/agp/amd64-agp.c:
...
static int __initdata agp_try_unsupported = 1;
...
module_param(agp_try_unsupported, bool, 0);
...
note the /sys filesystem perms for this parameter: 0 -- this means it
will *not* show up under /sys and, if it doesn't, then it really has
no value after loading. therefore, it can be tossed. (that's my
theory, which is mine. ahem.)
let's try the next one -- drivers/char/hw_random/intel-rng.c:
...
static __initdata int no_fwh_detect;
module_param(no_fwh_detect, int, 0);
...
i see a pattern here. one more, just for fun --
drivers/watchdog/sa1100_wdt.c:
...
static int margin __initdata = 60;
...
module_param(margin, int, 0);
...
yes, i think we've established what's happening. as long as a module
parameter is defined with access rights of zero, it can be tagged as
__initdata.
would anyone like to confirm or deny that? if it's true, it does
suggest that any module param with perms of zero *should* be tagged
with __initdata, to save space, since there's no reason to hang onto
it after loading. but i'll wait for someone much smarter than me to
confirm all this.
rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry:
Have classroom, will lecture.
http://crashcourse.ca Waterloo, Ontario, CANADA
========================================================================
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ