sync bes2600/ to v7.0-danctnix1 baseline (rebasing reference)
This commit is contained in:
+24
-1
@@ -21,6 +21,7 @@
|
||||
#include "debug.h"
|
||||
#include "sta.h"
|
||||
#include "sbus.h"
|
||||
#include "txrx_opt.h"
|
||||
#include "bes_log.h"
|
||||
|
||||
#define BES2600_INVALID_RATE_ID (0xFF)
|
||||
@@ -1473,14 +1474,35 @@ void bes2600_skb_dtor(struct bes2600_common *hw_priv,
|
||||
struct bes2600_vif *priv =
|
||||
__cw12xx_hwpriv_to_vifpriv(hw_priv, txpriv->if_id);
|
||||
|
||||
|
||||
if (!skb)
|
||||
return;
|
||||
|
||||
/*
|
||||
* There should be no reason for skb buffer being larger
|
||||
* than the offset..
|
||||
*/
|
||||
if(WARN_ON(txpriv->offset > skb->len)) {
|
||||
ieee80211_free_txskb(hw_priv->hw, skb);
|
||||
return;
|
||||
}
|
||||
|
||||
bes_devel("%s: txpriv->offset: %d - skb->len: %d\n",
|
||||
__func__, txpriv->offset, skb->len);
|
||||
|
||||
skb_pull(skb, txpriv->offset);
|
||||
if (priv && txpriv->rate_id != BES2600_INVALID_RATE_ID) {
|
||||
bes2600_notify_buffered_tx(priv, skb,
|
||||
txpriv->raw_link_id, txpriv->tid);
|
||||
tx_policy_put(hw_priv, txpriv->rate_id);
|
||||
}
|
||||
if (likely(!bes2600_is_itp(hw_priv)))
|
||||
if (likely(!bes2600_is_itp(hw_priv))) {
|
||||
if (priv) {
|
||||
/* The interface may be already removed */
|
||||
bes2600_tx_status(priv, skb);
|
||||
}
|
||||
ieee80211_tx_status_skb(hw_priv->hw, skb);
|
||||
}
|
||||
|
||||
}
|
||||
#ifdef CONFIG_BES2600_TESTMODE
|
||||
@@ -1849,6 +1871,7 @@ void bes2600_rx_cb(struct bes2600_vif *priv,
|
||||
|
||||
if (ieee80211_is_data(frame->frame_control)) {
|
||||
bes2600_rx_h_ba_stat(priv, hdrlen, skb->len);
|
||||
bes2600_rx_status(priv, skb);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BES2600_TESTMODE
|
||||
|
||||
Reference in New Issue
Block a user