summaryrefslogtreecommitdiff
path: root/drivers/staging/ks7010/ks7010_sdio.c
diff options
context:
space:
mode:
authorTobin C. Harding <me@tobin.cc>2017-04-18 03:35:31 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-04-18 14:33:17 +0300
commit055da4f9b95dd2a50c653b5a4559b9186081fb75 (patch)
tree8f91997ee9dd1d14078db7d756721c97ff60e8af /drivers/staging/ks7010/ks7010_sdio.c
parent68711cebcbb4dd7f5c05245715eefa4f4d4be760 (diff)
downloadlinux-055da4f9b95dd2a50c653b5a4559b9186081fb75.tar.xz
staging: ks7010: fix complete_handler
complete_handler() takes void * types as parameters. void * parameters are then cast to struct types. Call sites for this function either pass in NULL or pointers to the struct types cast to void *. This casting is unnecessary and can be removed. Struct tx_device_buffer (which contains a pointer member to the complete_handler() function) has as member 'ks_wlan_priv *priv' this is unnecessary, we always have a pointer to this struct there is no need to store it here. The complete_handler can be more clearly defined by using struct pointer types instead of void * types. The code is currently unnecessarily complex, storing and passing extraneous pointer parameters. Remove unnecessary parameters, unnecessary casting to/from 'void *'. Fix all call sites involving complete_handler(). Signed-off-by: Tobin C. Harding <me@tobin.cc> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/ks7010/ks7010_sdio.c')
-rw-r--r--drivers/staging/ks7010/ks7010_sdio.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/staging/ks7010/ks7010_sdio.c b/drivers/staging/ks7010/ks7010_sdio.c
index b103a20ad490..0f173c31066a 100644
--- a/drivers/staging/ks7010/ks7010_sdio.c
+++ b/drivers/staging/ks7010/ks7010_sdio.c
@@ -237,8 +237,9 @@ int ks_wlan_hw_power_save(struct ks_wlan_private *priv)
static int enqueue_txdev(struct ks_wlan_private *priv, unsigned char *p,
unsigned long size,
- void (*complete_handler)(void *arg1, void *arg2),
- void *arg1, void *arg2)
+ void (*complete_handler)(struct ks_wlan_private *priv,
+ struct sk_buff *skb),
+ struct sk_buff *skb)
{
struct tx_device_buffer *sp;
int ret;
@@ -259,8 +260,7 @@ static int enqueue_txdev(struct ks_wlan_private *priv, unsigned char *p,
sp->sendp = p;
sp->size = size;
sp->complete_handler = complete_handler;
- sp->arg1 = arg1;
- sp->arg2 = arg2;
+ sp->skb = skb;
inc_txqtail(priv);
return 0;
@@ -268,7 +268,7 @@ static int enqueue_txdev(struct ks_wlan_private *priv, unsigned char *p,
err_complete:
kfree(p);
if (complete_handler)
- (*complete_handler) (arg1, arg2);
+ (*complete_handler)(priv, skb);
return ret;
}
@@ -327,7 +327,7 @@ static void tx_device_task(struct ks_wlan_private *priv)
}
kfree(sp->sendp);
if (sp->complete_handler) /* TX Complete */
- (*sp->complete_handler) (sp->arg1, sp->arg2);
+ (*sp->complete_handler)(priv, sp->skb);
inc_txqhead(priv);
if (cnt_txqbody(priv) > 0) {
@@ -337,8 +337,9 @@ static void tx_device_task(struct ks_wlan_private *priv)
}
int ks_wlan_hw_tx(struct ks_wlan_private *priv, void *p, unsigned long size,
- void (*complete_handler)(void *arg1, void *arg2),
- void *arg1, void *arg2)
+ void (*complete_handler)(struct ks_wlan_private *priv,
+ struct sk_buff *skb),
+ struct sk_buff *skb)
{
int result = 0;
struct hostif_hdr *hdr;
@@ -356,7 +357,7 @@ int ks_wlan_hw_tx(struct ks_wlan_private *priv, void *p, unsigned long size,
DPRINTK(4, "event=%04X\n", hdr->event);
spin_lock(&priv->tx_dev.tx_dev_lock);
- result = enqueue_txdev(priv, p, size, complete_handler, arg1, arg2);
+ result = enqueue_txdev(priv, p, size, complete_handler, skb);
spin_unlock(&priv->tx_dev.tx_dev_lock);
if (cnt_txqbody(priv) > 0) {
@@ -628,7 +629,7 @@ static void trx_device_exit(struct ks_wlan_private *priv)
sp = &priv->tx_dev.tx_dev_buff[priv->tx_dev.qhead];
kfree(sp->sendp); /* allocated memory free */
if (sp->complete_handler) /* TX Complete */
- (*sp->complete_handler) (sp->arg1, sp->arg2);
+ (*sp->complete_handler)(priv, sp->skb);
inc_txqhead(priv);
}