sync bes2600/ to v7.0-danctnix1 baseline (rebasing reference)

This commit is contained in:
2026-05-19 09:04:33 +02:00
parent fe73571183
commit e0d752aae9
15 changed files with 1410 additions and 43 deletions
+24 -1
View File
@@ -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