On Sat, 21 Apr 2007, Len Brown wrote: > On Saturday 21 April 2007 10:08, Henrique de Moraes Holschuh wrote: > > From: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> > > > > Move the .init method from ibms struct to another struct, and use a list > > head to control which subdrivers have been activated. > > > > This allows us to have the subdriver init methods marked __init, saving > > quite a lot of .text size, and even a bit of .data size as some data can > > now be made __initdata. > > does this save any space when the driver is compiled as a module? Using gcc 4.1.2 20061115 pre-release (from Debian 4.1.1-21) and objdump -w -h, I get the following changes: bss: no change text: decreases from 0x46d8 to 0x3658 data: decreases from 0x7b4 to 0x784 init.text: increases from 0x5ff to 0x171f init.data: increases from 0 to 0x2b6 and now the usual issues with gcc and its .rodata handling even while inside __init and __initdata: rodata*: total increase of 0xbc bytes. So yes, there are savings when used as a module, unless objdump is lying to me or I failed to understand how these things play together when the kernel links the module at runmtime. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html