Skip to contentSkip to conversation

soc: versatile: remove unnecessary static in realview_soc_probe()

PATCH Applied Gustavo A. R. Silva 3 participants 4 messages Jul 19, 2017 – Aug 16, 2017 Arm integrator, versatile and realview support

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 soc: versatile: remove unnecessary static in realview_soc_probe()

Remove unnecessary static on local variables syscon_regmap. Such variables are initialized before being used, on every execution path throughout the functions. The static has no benefit and, removing it reduces the object file size.

This issue was detected using Coccinelle and the following semantic patch:

@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;

In the following log you can see the difference in the object file size. This log is the output of the size command, before and after the code change:

before:

   text    data     bss     dec     hex filename
   3339    2104     128    5571    15c3 drivers/soc/versatile/soc-realview.o

after:
text data bss dec hex filename
3321 2048 64 5433 1539 drivers/soc/versatile/soc-realview.o

---
 drivers/soc/versatile/soc-realview.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/soc/versatile/soc-realview.c +1 -1
index 282e371..caf698e 100644
@@ -85,7 +85,7 @@ static struct device_attribute realview_build_attr =
 
 static int realview_soc_probe(struct platform_device *pdev)
 {
-	static struct regmap *syscon_regmap;
+	struct regmap *syscon_regmap;
 	struct soc_device *soc_dev;
 	struct soc_device_attribute *soc_dev_attr;
 	struct device_node *np = pdev->dev.of_node;
Signature · 1 line
2.5.0
Acked-by on v1 1/1
#1 lore raw
Quoted 36 lines · Gustavo A. R. Silva

Remove unnecessary static on local variables syscon_regmap. Such variables are initialized before being used, on every execution path throughout the functions. The static has no benefit and, removing it reduces the object file size.

This issue was detected using Coccinelle and the following semantic patch:

@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;

In the following log you can see the difference in the object file size. This log is the output of the size command, before and after the code change:

before:

Quoted 8 lines
   text    data     bss     dec     hex filename
   3339    2104     128    5571    15c3 drivers/soc/versatile/soc-realview.o

after:
text data bss dec hex filename
3321 2048 64 5433 1539 drivers/soc/versatile/soc-realview.o

You probably want to funnel this patch through the ARM SoC tree.

(If nothing else works, send as separate patch to [email protected])

Yours,
Linus Walleij

#2 lore raw
Quoted 46 lines · Linus Walleij
Quoted 43 lines · Gustavo A. R. Silva

Remove unnecessary static on local variables syscon_regmap. Such variables are initialized before being used, on every execution path throughout the functions. The static has no benefit and, removing it reduces the object file size.

This issue was detected using Coccinelle and the following semantic patch:

@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;

In the following log you can see the difference in the object file size. This log is the output of the size command, before and after the code change:

before:

   text    data     bss     dec     hex filename
   3339    2104     128    5571    15c3 drivers/soc/versatile/soc-realview.o

after:
text data bss dec hex filename
3321 2048 64 5433 1539 drivers/soc/versatile/soc-realview.o

Quoted 8 lines
Quoted 1 line

You probably want to funnel this patch through the ARM SoC tree.

(If nothing else works, send as separate patch to [email protected])

OK, I'll do that. I'll add your ACK and CC you.

Thanks!

Signature · 1 line
Gustavo A. R. Silva
#3 lore raw
In reply to Linus Walleij
Quoted 9 lines · Linus Walleij
Quoted 6 lines · Gustavo A. R. Silva

Remove unnecessary static on local variables syscon_regmap. Such variables are initialized before being used, on every execution path throughout the functions. The static has no benefit and, removing it reduces the object file size.

Good catch!

Quoted 1 line

Applied to next/cleanup with your Ack, thanks!

Arnd