Bluetooth: btwilink: remove unnecessary static in bt_ti_probe()
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Wed, 19 Jul 2017 22:49:31 +0000 (17:49 -0500)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 20 Jul 2017 09:18:45 +0000 (11:18 +0200)
Remove unnecessary static on local variable hst.
Such variable is initialized before being used,
on every execution path throughout the function.
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
   4029    2528     128    6685    1a1d drivers/bluetooth/btwilink.o

after:
   text    data     bss     dec     hex filename
   4007    2472      64    6543    198f drivers/bluetooth/btwilink.o

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btwilink.c

index 85a3978b064fb832d9afeb49b08c111d11d01b06..0cdb8961e9a129ee548f1fa680e62882fedd398c 100644 (file)
@@ -276,7 +276,7 @@ static int ti_st_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 
 static int bt_ti_probe(struct platform_device *pdev)
 {
-       static struct ti_st *hst;
+       struct ti_st *hst;
        struct hci_dev *hdev;
        int err;