mtd: physmap_of: Drop unnecessary static
authorJulia Lawall <julia.lawall@lip6.fr>
Thu, 4 May 2017 20:10:47 +0000 (22:10 +0200)
committerBrian Norris <computersforpeace@gmail.com>
Thu, 11 May 2017 18:49:21 +0000 (11:49 -0700)
Drop static on a local variable, when the variable is initialized before
any use on every possible execution path through the function.  The static
has no benefit, and dropping it reduces the code size.

The semantic patch that fixes this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@bad exists@
position p;
identifier x;
type T;
@@

static T x@p;
...
x = <+...x...+>

@@
identifier x;
expression e;
type T;
position p != bad.p;
@@

-static
 T x@p;
 ... when != x
     when strict
?x = e;
// </smpl>

The change in code size is indicates by the following output from the size
command.

before:
   text    data     bss     dec     hex filename
    835      80       8     923     39b drivers/mtd/maps/physmap_of_gemini.o

after:
   text    data     bss     dec     hex filename
    823      80       0     903     387 drivers/mtd/maps/physmap_of_gemini.o

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/maps/physmap_of_gemini.c

index 9d371cd728ea122e47000139f35b451dd84df032..05b286b5289f547020622a6883318cad15ec010f 100644 (file)
@@ -59,7 +59,7 @@ int of_flash_probe_gemini(struct platform_device *pdev,
                          struct device_node *np,
                          struct map_info *map)
 {
-       static struct regmap *rmap;
+       struct regmap *rmap;
        struct device *dev = &pdev->dev;
        u32 val;
        int ret;