[PATCH 2/4] mtd: maps: add __init attribute

Brian Norris computersforpeace at gmail.com
Mon Apr 25 23:20:31 PDT 2016


On Tue, Apr 19, 2016 at 02:33:33PM +0200, Julia Lawall wrote:
> Add __init attribute on functions that are only called from other __init
> functions and that are not inlined, at least with gcc version 4.8.4 on an
> x86 machine with allyesconfig.  Currently, the functions are put in the
> .text.unlikely segment.  Declaring them as __init will cause them to be
> put in the .init.text and to disappear after initialization.
> 
> The result of objdump -x on the functions before the change is as follows:
> 
> 00000000000001bc l     F .text.unlikely 00000000000006a2 ck804xrom_init_one.isra.1
> 00000000000001aa l     F .text.unlikely 0000000000000764 esb2rom_init_one.isra.1
> 00000000000001db l     F .text.unlikely 0000000000000716 ichxrom_init_one.isra.1
> 
> And after the change it is as follows:
> 
> 0000000000000000 l     F .init.text	000000000000069d ck804xrom_init_one.isra.1
> 0000000000000000 l     F .init.text	000000000000075f esb2rom_init_one.isra.1
> 0000000000000000 l     F .init.text	0000000000000711 ichxrom_init_one.isra.1
> 
> Done with the help of Coccinelle.  The semantic patch checks for local
> static non-init functions that are called from an __init function and are
> not called from any other function.
> 
> Note that in each case, the function is stored in the probe field of a
> pci_driver structure, but this code is under an #if 0.  The #if 0s have
> been unchanged since 2009 at the latest.
> 
> Signed-off-by: Julia Lawall <Julia.Lawall at lip6.fr>

Applied patches 2 and 3 to l2-mtd.git



More information about the linux-mtd mailing list