diff options
author | Prameela Rani Garnepudi <prameela.j04cs@gmail.com> | 2017-07-10 14:40:46 +0200 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2017-07-28 16:25:44 +0200 |
commit | 5059afacee8815ebf387f79c55ff9e60a5ba8c6f (patch) | |
tree | b69abd9b5e9610455d417b402e46bf897e578147 /drivers/net/wireless/rsi | |
parent | rsi: update tx command frame block/unblock data (diff) | |
download | linux-5059afacee8815ebf387f79c55ff9e60a5ba8c6f.tar.xz linux-5059afacee8815ebf387f79c55ff9e60a5ba8c6f.zip |
rsi: Remove internal header from Tx status skb
Device specific descriptor for each TX packet is prepared on top of
skb data address. This descriptor should be pulled out before
indicating the TX status to mac80211.
Signed-off-by: Prameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/rsi')
-rw-r--r-- | drivers/net/wireless/rsi/rsi_91x_mac80211.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/rsi/rsi_91x_mac80211.c b/drivers/net/wireless/rsi/rsi_91x_mac80211.c index 021e5ac5f107..36303ae820af 100644 --- a/drivers/net/wireless/rsi/rsi_91x_mac80211.c +++ b/drivers/net/wireless/rsi/rsi_91x_mac80211.c @@ -229,12 +229,20 @@ void rsi_indicate_tx_status(struct rsi_hw *adapter, int status) { struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + struct skb_info *tx_params; - memset(info->driver_data, 0, IEEE80211_TX_INFO_DRIVER_DATA_SIZE); + if (!adapter->hw) { + rsi_dbg(ERR_ZONE, "##### No MAC #####\n"); + return; + } if (!status) info->flags |= IEEE80211_TX_STAT_ACK; + tx_params = (struct skb_info *)info->driver_data; + skb_pull(skb, tx_params->internal_hdr_size); + memset(info->driver_data, 0, IEEE80211_TX_INFO_DRIVER_DATA_SIZE); + ieee80211_tx_status_irqsafe(adapter->hw, skb); } |