From: Ajay Singh <[email protected]>
The patch series include changes to add WMM support. Also few patches
to handle issues in failure path.
Ajay Singh (5):
wilc1000: added 'ndo_set_mac_address' callback support
wilc1000: free resource in wilc_wlan_txq_add_net_pkt() for failure
path
wilc1000: free resource in wilc_wlan_txq_add_mgmt_pkt() for failure
path
wilc1000: call complete() for failure in wilc_wlan_txq_add_cfg_pkt()
wilc1000: added queue support for WMM
.../wireless/microchip/wilc1000/cfg80211.c | 7 +-
drivers/net/wireless/microchip/wilc1000/hif.c | 17 +
drivers/net/wireless/microchip/wilc1000/hif.h | 1 +
.../net/wireless/microchip/wilc1000/netdev.c | 38 ++
.../net/wireless/microchip/wilc1000/netdev.h | 11 +-
.../net/wireless/microchip/wilc1000/wlan.c | 335 ++++++++++++++----
.../net/wireless/microchip/wilc1000/wlan.h | 30 ++
7 files changed, 373 insertions(+), 66 deletions(-)
--
2.24.0
From: Ajay Singh <[email protected]>
Added complete() call for failure case in wilc_wlan_txq_add_cfg_pkt().
Signed-off-by: Ajay Singh <[email protected]>
---
drivers/net/wireless/microchip/wilc1000/wlan.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/microchip/wilc1000/wlan.c b/drivers/net/wireless/microchip/wilc1000/wlan.c
index 42b5db4e2d81..0ff4de28f622 100644
--- a/drivers/net/wireless/microchip/wilc1000/wlan.c
+++ b/drivers/net/wireless/microchip/wilc1000/wlan.c
@@ -258,8 +258,10 @@ static int wilc_wlan_txq_add_cfg_pkt(struct wilc_vif *vif, u8 *buffer,
}
tqe = kmalloc(sizeof(*tqe), GFP_ATOMIC);
- if (!tqe)
+ if (!tqe) {
+ complete(&wilc->cfg_event);
return 0;
+ }
tqe->type = WILC_CFG_PKT;
tqe->buffer = buffer;
--
2.24.0
From: Ajay Singh <[email protected]>
Before returing from wilc_wlan_txq_add_net_pkt() invoke tx_complete_fn()
callback to free up allocated memory for failure cases.
Signed-off-by: Ajay Singh <[email protected]>
---
drivers/net/wireless/microchip/wilc1000/wlan.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/microchip/wilc1000/wlan.c b/drivers/net/wireless/microchip/wilc1000/wlan.c
index 6a82fb2f283e..f0cc2da7c9c7 100644
--- a/drivers/net/wireless/microchip/wilc1000/wlan.c
+++ b/drivers/net/wireless/microchip/wilc1000/wlan.c
@@ -284,13 +284,17 @@ int wilc_wlan_txq_add_net_pkt(struct net_device *dev, void *priv, u8 *buffer,
wilc = vif->wilc;
- if (wilc->quit)
+ if (wilc->quit) {
+ tx_complete_fn(priv, 0);
return 0;
+ }
tqe = kmalloc(sizeof(*tqe), GFP_ATOMIC);
- if (!tqe)
+ if (!tqe) {
+ tx_complete_fn(priv, 0);
return 0;
+ }
tqe->type = WILC_NET_PKT;
tqe->buffer = buffer;
tqe->buffer_size = buffer_size;
--
2.24.0