summaryrefslogtreecommitdiff
path: root/drivers/staging
diff options
context:
space:
mode:
authorAjay Singh <ajay.kathat@microchip.com>2018-06-26 11:37:13 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-06-28 21:55:52 +0900
commit688a45ea203010ed9145596f8f84bd6eed930d84 (patch)
tree42db264af27a353abfe912e7dd2740a613fb47d2 /drivers/staging
parent6566dc0416084e7e6d607024b8c04ed08ad8011e (diff)
staging: wilc1000: avoid use of static variable 'rssi'
Instead of static variable now allocating the data and passing to handle_get_rssi() to fill the rssi information. Signed-off-by: Ajay Singh <ajay.kathat@microchip.com> Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/wilc1000/host_interface.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c
index f61a20d61d93..52c0c1066375 100644
--- a/drivers/staging/wilc1000/host_interface.c
+++ b/drivers/staging/wilc1000/host_interface.c
@@ -196,7 +196,6 @@ u8 wilc_multicast_mac_addr_list[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN];
static u8 rcv_assoc_resp[MAX_ASSOC_RESP_FRAME_SIZE];
-static s8 rssi;
static u8 set_ip[2][4];
static u8 get_ip[2][4];
static u32 clients_count;
@@ -1829,7 +1828,7 @@ static void handle_get_rssi(struct work_struct *work)
wid.id = (u16)WID_RSSI;
wid.type = WID_CHAR;
- wid.val = &rssi;
+ wid.val = msg->body.data;
wid.size = sizeof(char);
result = wilc_send_config_pkt(vif, GET_CFG, &wid, 1,
@@ -3115,14 +3114,21 @@ int wilc_get_rssi(struct wilc_vif *vif, s8 *rssi_level)
if (IS_ERR(msg))
return PTR_ERR(msg);
+ msg->body.data = kzalloc(sizeof(s8), GFP_KERNEL);
+ if (!msg->body.data) {
+ kfree(msg);
+ return -ENOMEM;
+ }
+
result = wilc_enqueue_work(msg);
if (result) {
netdev_err(vif->ndev, "Failed to send get host ch param\n");
} else {
wait_for_completion(&msg->work_comp);
- *rssi_level = rssi;
+ *rssi_level = *msg->body.data;
}
+ kfree(msg->body.data);
kfree(msg);
return result;