ath11k_nss: Organize patch order and formatting

NSS patches should always get applied last as to avoid fuzzing issues
with upstream patches.

Also cleanup patches that introduced spaces as indents vs. tabs

Signed-off-by: Sean Khan <datapronix@protonmail.com>

ath11k_nss: drop upstreamed patch

A variation of this patch 'wifi: mac80211: Use flexible array in struct ieee80211_tim_ie'
was upstreamed in commit 'e6e4d90b69027d74ba7e9a0a586b95a5714e10c0'.
Remove it to avoid compilation issues.

Signed-off-by: Sean Khan <datapronix@protonmail.com>

ath11k_nss: Fix patch conflict

Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
Sean Khan 2024-06-22 17:18:07 -04:00
parent 4a52aeb0b7
commit db9ba5cdb1
56 changed files with 319 additions and 300 deletions

View File

@ -379,16 +379,16 @@ define Build/Patch
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath12k,ath12k/)
ifdef CONFIG_ATH11K_NSS_SUPPORT
$(foreach driver,$(NSS_PATCH),
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/nss/$(driver),nss/$(driver)/)
)
endif
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
ifdef CONFIG_ATH11K_NSS_SUPPORT
$(foreach driver,$(NSS_PATCH),
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/nss/$(driver),nss/$(driver)/)
)
endif
$(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
endef
@ -401,16 +401,16 @@ define Quilt/Refresh/Package
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath12k,ath12k/)
ifdef CONFIG_ATH11K_NSS_SUPPORT
$(foreach driver,$(NSS_PATCH),
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/nss/$(driver),nss/$(driver)/)
)
endif
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
ifdef CONFIG_ATH11K_NSS_SUPPORT
$(foreach driver,$(NSS_PATCH),
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/nss/$(driver),nss/$(driver)/)
)
endif
endef
define Build/Compile

View File

@ -1000,7 +1000,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* This shouldn't happen, indicating error during defragmentation */
if (skb_queue_empty(&subframe_list))
@@ -658,12 +660,14 @@ drop:
@@ -661,12 +663,14 @@ drop:
return -EINVAL;
}
@ -1016,7 +1016,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
if (!ar->ab->nss.enabled)
return 0;
@@ -676,6 +680,22 @@ int ath11k_nss_vdev_set_cmd(struct ath11
@@ -679,6 +683,22 @@ int ath11k_nss_vdev_set_cmd(struct ath11
if (!vdev_msg)
return -ENOMEM;
@ -1039,7 +1039,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* TODO: Convert to function for conversion in case of many
* such commands
*/
@@ -1137,7 +1157,6 @@ void ath11k_nss_update_sta_stats(struct
@@ -1140,7 +1160,6 @@ void ath11k_nss_update_sta_stats(struct
{
struct sta_info *stainfo;
struct ath11k_peer *peer;
@ -1047,7 +1047,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct ath11k *ar = arsta->arvif->ar;
struct ath11k_base *ab = ar->ab;
@@ -1231,6 +1250,9 @@ void ath11k_nss_update_sta_rxrate(struct
@@ -1234,6 +1253,9 @@ void ath11k_nss_update_sta_rxrate(struct
if (!ab->nss.enabled)
return;
@ -1057,7 +1057,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
if (!peer->nss.nss_stats)
return;
@@ -1290,7 +1312,7 @@ void ath11k_nss_update_sta_rxrate(struct
@@ -1293,7 +1315,7 @@ void ath11k_nss_update_sta_rxrate(struct
peer->nss.nss_stats->rxrate.mcs = mcs;
peer->nss.nss_stats->rxrate.flags = RATE_INFO_FLAGS_HE_MCS;
peer->nss.nss_stats->rxrate.he_dcm = ppdu_info->dcm;

View File

@ -327,7 +327,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
dev_kfree_skb_any(skb);
return;
}
@@ -1321,7 +1546,7 @@ void ath11k_nss_update_sta_rxrate(struct
@@ -1324,7 +1549,7 @@ void ath11k_nss_update_sta_rxrate(struct
peer->nss.nss_stats->rxrate.bw = ath11k_mac_bw_to_mac80211_bw(ppdu_info->bw);
}
@ -336,7 +336,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
{
struct nss_wifili_peer_msg *peer_msg;
struct nss_wifili_msg *wlmsg = NULL;
@@ -1335,9 +1560,10 @@ int ath11k_nss_peer_delete(struct ath11k
@@ -1338,9 +1563,10 @@ int ath11k_nss_peer_delete(struct ath11k
spin_lock_bh(&ab->base_lock);
@ -349,7 +349,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
spin_unlock_bh(&ab->base_lock);
return -EINVAL;
}
@@ -1410,8 +1636,9 @@ free_peer:
@@ -1413,8 +1639,9 @@ free_peer:
return ret;
}
@ -360,7 +360,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct nss_wifili_peer_msg *peer_msg;
struct nss_wifili_msg *wlmsg = NULL;
nss_wifili_msg_callback_t msg_cb;
@@ -1468,17 +1695,23 @@ int ath11k_nss_peer_create(struct ath11k
@@ -1471,17 +1698,23 @@ int ath11k_nss_peer_create(struct ath11k
status = nss_wifili_tx_msg(ab->nss.ctx, wlmsg);
if (status != NSS_TX_SUCCESS) {
ret = -EINVAL;
@ -387,7 +387,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
peer->nss.nss_stats = kzalloc(sizeof(*peer->nss.nss_stats), GFP_ATOMIC);
if (!peer->nss.nss_stats) {
ret = -ENOMEM;
@@ -1497,6 +1730,199 @@ msg_free:
@@ -1500,6 +1733,199 @@ msg_free:
return ret;
}
@ -587,7 +587,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
/*-------------------------------INIT/DEINIT---------------------------------*/
static int ath11k_nss_radio_buf_cfg(struct ath11k *ar, int range, int buf_sz)
@@ -1890,7 +2316,7 @@ static int ath11k_nss_init(struct ath11k
@@ -1893,7 +2319,7 @@ static int ath11k_nss_init(struct ath11k
status = nss_wifili_tx_msg(nss_contex, wlmsg);
if (status != NSS_TX_SUCCESS) {
@ -596,7 +596,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
goto unregister;
}
@@ -1944,7 +2370,8 @@ static int ath11k_nss_stats_cfg(struct a
@@ -1947,7 +2373,8 @@ static int ath11k_nss_stats_cfg(struct a
status = nss_wifili_tx_msg(ar->nss.ctx, wlmsg);
if (status != NSS_TX_SUCCESS) {

View File

@ -180,7 +180,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
int ath11k_nss_tx(struct ath11k_vif *arvif, struct sk_buff *skb)
{
struct ath11k *ar = arvif->ar;
@@ -867,10 +940,16 @@ int ath11k_nss_tx(struct ath11k_vif *arv
@@ -869,10 +942,16 @@ int ath11k_nss_tx(struct ath11k_vif *arv
ath11k_nss_tx_encap_nwifi(skb);
send:
@ -201,7 +201,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (status != NSS_TX_SUCCESS) {
ath11k_dbg(ar->ab, (ATH11K_DBG_NSS | ATH11K_DBG_DP_TX),
@@ -1211,6 +1290,7 @@ int ath11k_nss_vdev_up(struct ath11k_vif
@@ -1214,6 +1293,7 @@ int ath11k_nss_vdev_up(struct ath11k_vif
struct nss_wifi_vdev_msg *vdev_msg = NULL;
struct nss_wifi_vdev_enable_msg *vdev_en;
struct ath11k *ar = arvif->ar;
@ -209,7 +209,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
nss_tx_status_t status;
int ret = 0;
@@ -1242,6 +1322,12 @@ int ath11k_nss_vdev_up(struct ath11k_vif
@@ -1245,6 +1325,12 @@ int ath11k_nss_vdev_up(struct ath11k_vif
}
ath11k_dbg(ar->ab, ATH11K_DBG_NSS, "nss vdev up tx msg success\n");
@ -222,7 +222,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
free:
kfree(vdev_msg);
return ret;
@@ -1251,6 +1337,7 @@ int ath11k_nss_vdev_down(struct ath11k_v
@@ -1254,6 +1340,7 @@ int ath11k_nss_vdev_down(struct ath11k_v
{
struct nss_wifi_vdev_msg *vdev_msg = NULL;
struct ath11k *ar = arvif->ar;
@ -230,7 +230,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
nss_tx_status_t status;
int ret = 0;
@@ -1278,11 +1365,362 @@ int ath11k_nss_vdev_down(struct ath11k_v
@@ -1281,11 +1368,362 @@ int ath11k_nss_vdev_down(struct ath11k_v
}
ath11k_dbg(ar->ab, ATH11K_DBG_NSS, "nss vdev down tx msg success\n");
@ -593,7 +593,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
/*----------------------------Peer Setup/Config -----------------------------*/
int ath11k_nss_set_peer_sec_type(struct ath11k *ar,
@@ -1376,22 +1814,22 @@ free:
@@ -1379,22 +1817,22 @@ free:
return status;
}
@ -623,7 +623,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
sta->addr);
goto exit;
}
@@ -1463,13 +1901,13 @@ void ath11k_nss_update_sta_rxrate(struct
@@ -1466,13 +1904,13 @@ void ath11k_nss_update_sta_rxrate(struct
struct ath11k_peer *peer,
struct hal_rx_user_status *user_stats)
{
@ -639,7 +639,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct ath11k_base *ab = ar->ab;
if (!ab->nss.enabled)
@@ -1773,8 +2211,8 @@ int ath11k_nss_add_wds_peer(struct ath11
@@ -1776,8 +2214,8 @@ int ath11k_nss_add_wds_peer(struct ath11
}
ath11k_dbg(ab, ATH11K_DBG_NSS_WDS,
@ -650,7 +650,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
msg_free:
kfree(wlmsg);
@@ -1819,8 +2257,8 @@ int ath11k_nss_update_wds_peer(struct at
@@ -1822,8 +2260,8 @@ int ath11k_nss_update_wds_peer(struct at
}
ath11k_dbg(ab, ATH11K_DBG_NSS_WDS,

View File

@ -542,7 +542,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
spin_unlock_bh(&ab->base_lock);
rcu_read_unlock();
@@ -997,6 +1003,9 @@ int ath11k_nss_vdev_set_cmd(struct ath11
@@ -1000,6 +1006,9 @@ int ath11k_nss_vdev_set_cmd(struct ath11
case ATH11K_NSS_WIFI_VDEV_DECAP_TYPE_CMD:
cmd = NSS_WIFI_VDEV_DECAP_TYPE_CMD;
break;

View File

@ -15,7 +15,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/nss.c
+++ b/drivers/net/wireless/ath/ath11k/nss.c
@@ -1527,14 +1527,11 @@ static int ath11k_nss_ext_vdev_register(
@@ -1530,14 +1530,11 @@ static int ath11k_nss_ext_vdev_register(
struct ath11k *ar = arvif->ar;
struct ath11k_base *ab = ar->ab;
nss_tx_status_t status;
@ -30,7 +30,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
arvif->nss.ctx = nss_wifi_ext_vdev_register_if(arvif->nss.if_num,
ath11k_nss_ext_vdev_data_receive,
ath11k_nss_ext_vdev_special_data_receive,
@@ -1562,7 +1559,8 @@ static void ath11k_nss_ext_vdev_free(str
@@ -1565,7 +1562,8 @@ static void ath11k_nss_ext_vdev_free(str
status = nss_dynamic_interface_dealloc_node(
arvif->nss.if_num,
@ -40,7 +40,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (status != NSS_TX_SUCCESS)
ath11k_warn(ab, "failed to free nss ext vdev err:%d\n",
status);
@@ -1571,14 +1569,19 @@ static void ath11k_nss_ext_vdev_free(str
@@ -1574,14 +1572,19 @@ static void ath11k_nss_ext_vdev_free(str
"nss ext vdev interface deallocated\n");
}
@ -62,7 +62,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if_num = nss_dynamic_interface_alloc_node(di_type);
if (if_num < 0) {
ath11k_warn(ab, "failed to allocate nss ext vdev\n");
@@ -1587,8 +1590,8 @@ static int ath11k_nss_ext_vdev_alloc(str
@@ -1590,8 +1593,8 @@ static int ath11k_nss_ext_vdev_alloc(str
arvif->nss.if_num = if_num;
ath11k_dbg(ab, ATH11K_DBG_NSS_WDS,
@ -73,7 +73,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
return 0;
}
@@ -1617,7 +1620,7 @@ int ath11k_nss_ext_vdev_create(struct at
@@ -1620,7 +1623,7 @@ int ath11k_nss_ext_vdev_create(struct at
return -EINVAL;
}
@ -82,7 +82,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (ret)
return ret;
@@ -1730,6 +1733,86 @@ free:
@@ -1733,6 +1736,86 @@ free:
return ret;
}

View File

@ -1257,7 +1257,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
mutex_unlock(&ar->conf_mutex);
}
@@ -9709,6 +9721,28 @@ err_fallback:
@@ -9707,6 +9719,28 @@ err_fallback:
return 0;
}
@ -1286,7 +1286,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
static const struct ieee80211_ops ath11k_ops = {
.tx = ath11k_mac_op_tx,
.wake_tx_queue = ieee80211_handle_wake_tx_queue,
@@ -9766,6 +9800,9 @@ static const struct ieee80211_ops ath11k
@@ -9764,6 +9798,9 @@ static const struct ieee80211_ops ath11k
.set_sar_specs = ath11k_mac_op_set_bios_sar_specs,
.remain_on_channel = ath11k_mac_op_remain_on_channel,
.cancel_remain_on_channel = ath11k_mac_op_cancel_remain_on_channel,
@ -1296,7 +1296,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
};
static void ath11k_mac_update_ch_list(struct ath11k *ar,
@@ -10227,6 +10264,8 @@ static int __ath11k_mac_register(struct
@@ -10225,6 +10262,8 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, SUPPORTS_NSS_OFFLOAD);
wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_VLAN_OFFLOAD);
@ -2629,7 +2629,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
if (status != NSS_TX_SUCCESS) {
ath11k_dbg(ar->ab, (ATH11K_DBG_NSS | ATH11K_DBG_DP_TX),
@@ -1057,6 +2180,9 @@ static int ath11k_nss_vdev_configure(str
@@ -1060,6 +2183,9 @@ static int ath11k_nss_vdev_configure(str
vdev_cfg = &vdev_msg->msg.vdev_config;
@ -2639,7 +2639,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
vdev_cfg->radio_ifnum = ar->nss.if_num;
vdev_cfg->vdev_id = arvif->vdev_id;
@@ -1095,6 +2221,39 @@ free:
@@ -1098,6 +2224,39 @@ free:
return ret;
}
@ -2679,7 +2679,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
static void ath11k_nss_vdev_unregister(struct ath11k_vif *arvif)
{
struct ath11k_base *ab = arvif->ar->ab;
@@ -1106,6 +2265,14 @@ static void ath11k_nss_vdev_unregister(s
@@ -1109,6 +2268,14 @@ static void ath11k_nss_vdev_unregister(s
ath11k_dbg(ab, ATH11K_DBG_NSS, "unregistered nss vdev %d \n",
arvif->nss.if_num);
break;
@ -2694,7 +2694,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
default:
ath11k_warn(ab, "unsupported interface type %d for nss vdev unregister\n",
arvif->vif->type);
@@ -1113,6 +2280,78 @@ static void ath11k_nss_vdev_unregister(s
@@ -1116,6 +2283,78 @@ static void ath11k_nss_vdev_unregister(s
}
}
@ -2773,7 +2773,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
static int ath11k_nss_vdev_register(struct ath11k_vif *arvif,
struct net_device *netdev)
{
@@ -1140,6 +2379,15 @@ static int ath11k_nss_vdev_register(stru
@@ -1143,6 +2382,15 @@ static int ath11k_nss_vdev_register(stru
arvif->nss.if_num);
break;
@ -2789,7 +2789,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
default:
ath11k_warn(ab, "unsupported interface type %d for nss vdev register\n",
arvif->vif->type);
@@ -1149,6 +2397,62 @@ static int ath11k_nss_vdev_register(stru
@@ -1152,6 +2400,62 @@ static int ath11k_nss_vdev_register(stru
return 0;
}
@ -2852,7 +2852,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
void ath11k_nss_vdev_free(struct ath11k_vif *arvif)
{
struct ath11k_base *ab = arvif->ar->ab;
@@ -1168,6 +2472,11 @@ void ath11k_nss_vdev_free(struct ath11k_
@@ -1171,6 +2475,11 @@ void ath11k_nss_vdev_free(struct ath11k_
"nss vdev interface deallocated\n");
return;
@ -2864,7 +2864,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
default:
ath11k_warn(ab, "unsupported interface type %d for nss vdev dealloc\n",
arvif->vif->type);
@@ -1175,11 +2484,96 @@ void ath11k_nss_vdev_free(struct ath11k_
@@ -1178,11 +2487,96 @@ void ath11k_nss_vdev_free(struct ath11k_
}
}
@ -2962,7 +2962,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
/* Initialize completion for verifying NSS message response */
init_completion(&arvif->nss.complete);
@@ -1201,6 +2595,16 @@ static int ath11k_nss_vdev_alloc(struct
@@ -1204,6 +2598,16 @@ static int ath11k_nss_vdev_alloc(struct
arvif->nss.if_num);
break;
@ -2979,7 +2979,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
default:
ath11k_warn(ab, "unsupported interface type %d for nss vdev alloc\n",
arvif->vif->type);
@@ -1238,7 +2642,7 @@ int ath11k_nss_vdev_create(struct ath11k
@@ -1241,7 +2645,7 @@ int ath11k_nss_vdev_create(struct ath11k
return -EINVAL;
}
@ -2988,7 +2988,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
if (ret)
return ret;
@@ -1254,6 +2658,45 @@ int ath11k_nss_vdev_create(struct ath11k
@@ -1257,6 +2661,45 @@ int ath11k_nss_vdev_create(struct ath11k
goto unregister_vdev;
break;
@ -3034,7 +3034,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
default:
ret = -ENOTSUPP;
goto unregister_vdev;
@@ -1310,6 +2753,15 @@ int ath11k_nss_vdev_up(struct ath11k_vif
@@ -1313,6 +2756,15 @@ int ath11k_nss_vdev_up(struct ath11k_vif
if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR)
return 0;
@ -3050,7 +3050,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
vdev_msg = kzalloc(sizeof(struct nss_wifi_vdev_msg), GFP_ATOMIC);
if (!vdev_msg)
return -ENOMEM;
@@ -1357,6 +2809,15 @@ int ath11k_nss_vdev_down(struct ath11k_v
@@ -1360,6 +2812,15 @@ int ath11k_nss_vdev_down(struct ath11k_v
if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR)
return 0;
@ -3066,7 +3066,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
vdev_msg = kzalloc(sizeof(struct nss_wifi_vdev_msg), GFP_ATOMIC);
if (!vdev_msg)
return -ENOMEM;
@@ -2731,6 +4192,51 @@ static int ath11k_nss_get_dynamic_interf
@@ -2734,6 +4195,51 @@ static int ath11k_nss_get_dynamic_interf
}
}
@ -3118,7 +3118,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
static int ath11k_nss_init(struct ath11k_base *ab)
{
struct nss_wifili_init_msg *wim = NULL;
@@ -2863,6 +4369,17 @@ static int ath11k_nss_init(struct ath11k
@@ -2866,6 +4372,17 @@ static int ath11k_nss_init(struct ath11k
kfree(wlmsg);

View File

@ -126,7 +126,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
}
static void
@@ -2129,6 +2163,9 @@ int ath11k_nss_vdev_set_cmd(struct ath11
@@ -2132,6 +2166,9 @@ int ath11k_nss_vdev_set_cmd(struct ath11
case ATH11K_NSS_WIFI_VDEV_CFG_WDS_BACKHAUL_CMD:
cmd = NSS_WIFI_VDEV_CFG_WDS_BACKHAUL_CMD;
break;
@ -136,7 +136,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
default:
return -EINVAL;
}
@@ -2651,12 +2688,31 @@ int ath11k_nss_vdev_create(struct ath11k
@@ -2654,12 +2691,31 @@ int ath11k_nss_vdev_create(struct ath11k
goto free_vdev;
switch (arvif->vif->type) {
@ -169,7 +169,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
break;
#ifdef CPTCFG_ATH11K_NSS_MESH_SUPPORT
case NL80211_IFTYPE_MESH_POINT:
@@ -2987,7 +3043,6 @@ static int ath11k_nss_ext_vdev_register(
@@ -2990,7 +3046,6 @@ static int ath11k_nss_ext_vdev_register(
{
struct ath11k *ar = arvif->ar;
struct ath11k_base *ab = ar->ab;
@ -177,7 +177,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
u32 features = 0;
if (arvif->vif->type != NL80211_IFTYPE_AP_VLAN || arvif->nss.ctx)
@@ -3001,7 +3056,7 @@ static int ath11k_nss_ext_vdev_register(
@@ -3004,7 +3059,7 @@ static int ath11k_nss_ext_vdev_register(
if (!arvif->nss.ctx) {
ath11k_warn(ab, "failed to register nss vdev if_num %d nss_err:%d\n",

View File

@ -23,7 +23,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -7638,8 +7638,10 @@ err_vdev_del:
@@ -7636,8 +7636,10 @@ err_vdev_del:
kfree(arvif->vlan_keyid_map);
ath11k_peer_cleanup(ar, arvif->vdev_id);

View File

@ -124,7 +124,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
break;
default:
ath11k_warn(ab, "unsupported wds_type %d\n", wds_type);
@@ -3796,11 +3797,7 @@ int ath11k_nss_add_wds_peer(struct ath11
@@ -3799,11 +3800,7 @@ int ath11k_nss_add_wds_peer(struct ath11
wds_peer_msg->ast_type = type;
wds_peer_msg->peer_id = peer->peer_id;
@ -137,7 +137,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
ether_addr_copy(wds_peer_msg->dest_mac, dest_mac);
msg_cb = (nss_wifili_msg_callback_t)ath11k_nss_wifili_event_receive;
@@ -3923,7 +3920,7 @@ msg_free:
@@ -3926,7 +3923,7 @@ msg_free:
return ret;
}
@ -146,7 +146,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
u8 *dest_mac)
{
struct ath11k_base *ab = ar->ab;
@@ -3941,8 +3938,8 @@ int ath11k_nss_del_wds_peer(struct ath11
@@ -3944,8 +3941,8 @@ int ath11k_nss_del_wds_peer(struct ath11
wds_peer_msg->pdev_id = ar->pdev->pdev_id;
wds_peer_msg->ast_type = ATH11K_AST_TYPE_NONE;

View File

@ -58,7 +58,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
tcl_cmd.info3 = FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_DSCP_TID_TABLE_IDX,
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10150,6 +10150,8 @@ static int __ath11k_mac_register(struct
@@ -10148,6 +10148,8 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, USES_RSS);
}

View File

@ -19,7 +19,7 @@ Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/nss.c
+++ b/drivers/net/wireless/ath/ath11k/nss.c
@@ -3871,13 +3871,14 @@ msg_free:
@@ -3874,13 +3874,14 @@ msg_free:
}
int ath11k_nss_map_wds_peer(struct ath11k *ar, struct ath11k_peer *peer,
@ -35,7 +35,7 @@ Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
int ret = 0;
wlmsg = kzalloc(sizeof(struct nss_wifili_msg), GFP_ATOMIC);
@@ -3887,7 +3888,7 @@ int ath11k_nss_map_wds_peer(struct ath11
@@ -3890,7 +3891,7 @@ int ath11k_nss_map_wds_peer(struct ath11
wds_peer_map_msg = &wlmsg->msg.wdspeermapmsg;
wds_peer_map_msg->vdev_id = peer->vdev_id;

View File

@ -36,7 +36,7 @@ Signed-off-by: Rajat Soni <quic_rajson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6786,7 +6786,9 @@ static int ath11k_mac_op_start(struct ie
@@ -6784,7 +6784,9 @@ static int ath11k_mac_op_start(struct ie
break;
case ATH11K_STATE_RESTARTING:
ar->state = ATH11K_STATE_RESTARTED;

View File

@ -27,7 +27,7 @@ Signed-off-by: Hari Chandrakanthan <quic_haric@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -8464,6 +8464,8 @@ static int ath11k_mac_flush_tx_complete(
@@ -8462,6 +8462,8 @@ static int ath11k_mac_flush_tx_complete(
ret = -ETIMEDOUT;
}

View File

@ -13,7 +13,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10141,6 +10141,7 @@ static int __ath11k_mac_register(struct
@@ -10139,6 +10139,7 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);

View File

@ -26,7 +26,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -8218,7 +8218,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
@@ -8216,7 +8216,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
struct ath11k_base *ab = ar->ab;
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
int ret;
@ -34,7 +34,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
mutex_lock(&ar->conf_mutex);
@@ -8241,21 +8240,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
@@ -8239,21 +8238,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
goto out;
}

View File

@ -39,7 +39,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (ret) {
ath11k_warn(ab, "failed to delay vdev start: %d\n", ret);
goto free_tx_stats;
@@ -8161,8 +8161,8 @@ unlock:
@@ -8159,8 +8159,8 @@ unlock:
mutex_unlock(&ar->conf_mutex);
}

View File

@ -317,7 +317,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int ath11k_mac_op_sta_set_txpwr(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta)
@@ -9738,6 +9460,281 @@ ath11k_mac_op_config_mesh_offload_path(s
@@ -9736,6 +9458,281 @@ ath11k_mac_op_config_mesh_offload_path(s
}
#endif

View File

@ -52,7 +52,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -7930,6 +7930,30 @@ static int ath11k_mac_start_vdev_delay(s
@@ -7928,6 +7928,30 @@ static int ath11k_mac_start_vdev_delay(s
return 0;
}
@ -83,7 +83,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int
ath11k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
@@ -7974,15 +7998,17 @@ ath11k_mac_op_assign_vif_chanctx(struct
@@ -7972,15 +7996,17 @@ ath11k_mac_op_assign_vif_chanctx(struct
goto out;
}
@ -109,7 +109,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR &&
test_bit(ATH11K_FLAG_MONITOR_VDEV_CREATED, &ar->monitor_flags)) {
@@ -8022,8 +8048,6 @@ ath11k_mac_op_unassign_vif_chanctx(struc
@@ -8020,8 +8046,6 @@ ath11k_mac_op_unassign_vif_chanctx(struc
"chanctx unassign ptr %p vdev_id %i\n",
ctx, arvif->vdev_id);
@ -118,7 +118,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (ab->hw_params.vdev_start_delay &&
arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
spin_lock_bh(&ab->base_lock);
@@ -8047,24 +8071,13 @@ ath11k_mac_op_unassign_vif_chanctx(struc
@@ -8045,24 +8069,13 @@ ath11k_mac_op_unassign_vif_chanctx(struc
return;
}
@ -149,7 +149,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
}
if (ab->hw_params.vdev_start_delay &&
@@ -9554,6 +9567,46 @@ exit:
@@ -9552,6 +9565,46 @@ exit:
return ret;
}
@ -196,7 +196,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
@@ -9589,31 +9642,15 @@ static int ath11k_mac_op_sta_state(struc
@@ -9587,31 +9640,15 @@ static int ath11k_mac_op_sta_state(struc
sta->addr, arvif->vdev_id);
} else if ((old_state == IEEE80211_STA_NONE &&
new_state == IEEE80211_STA_NOTEXIST)) {
@ -233,7 +233,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
ath11k_warn(ar->ab, "Found peer entry %pM n vdev %i after it was supposedly removed\n",
vif->addr, arvif->vdev_id);
ath11k_peer_rhash_delete(ar->ab, peer);
@@ -9624,12 +9661,6 @@ static int ath11k_mac_op_sta_state(struc
@@ -9622,12 +9659,6 @@ static int ath11k_mac_op_sta_state(struc
}
spin_unlock_bh(&ar->ab->base_lock);
mutex_unlock(&ar->ab->tbl_mtx_lock);
@ -246,7 +246,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
} else if (old_state == IEEE80211_STA_AUTH &&
new_state == IEEE80211_STA_ASSOC &&
(vif->type == NL80211_IFTYPE_AP ||
@@ -10202,6 +10233,8 @@ static int __ath11k_mac_register(struct
@@ -10200,6 +10231,8 @@ static int __ath11k_mac_register(struct
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);

View File

@ -176,7 +176,7 @@
spin_unlock_bh(&ab->base_lock);
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -9811,7 +9811,7 @@ static const struct ieee80211_ops ath11k
@@ -9809,7 +9809,7 @@ static const struct ieee80211_ops ath11k
.set_wakeup = ath11k_wow_op_set_wakeup,
#endif

View File

@ -501,7 +501,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -1263,6 +1263,8 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
@@ -1275,6 +1275,8 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
!!(params.flags & HAL_SRNG_FLAGS_MSI_SWAP));
cmd->info0 |= FIELD_PREP(HTT_RX_RING_SELECTION_CFG_CMD_INFO0_PS,
!!(params.flags & HAL_SRNG_FLAGS_DATA_TLV_SWAP));
@ -510,7 +510,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
cmd->info1 = FIELD_PREP(HTT_RX_RING_SELECTION_CFG_CMD_INFO1_BUF_SIZE,
rx_buf_size);
@@ -1272,6 +1274,26 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
@@ -1284,6 +1286,26 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
cmd->pkt_type_en_flags3 = tlv_filter->pkt_filter_flags3;
cmd->rx_filter_tlv = tlv_filter->rx_filter;
@ -537,7 +537,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
ret = ath11k_htc_send(&ab->htc, ab->dp.eid, skb);
if (ret)
goto err_free;
@@ -1350,6 +1372,7 @@ int ath11k_dp_tx_htt_monitor_mode_ring_c
@@ -1362,6 +1384,7 @@ int ath11k_dp_tx_htt_monitor_mode_ring_c
}
ring_id = dp->rxdma_mon_buf_ring.refill_buf_ring.ring_id;
@ -933,7 +933,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
extern const struct ath11k_hw_ops ipq8074_ops;
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6450,6 +6450,7 @@ static int ath11k_mac_config_mon_status_
@@ -6448,6 +6448,7 @@ static int ath11k_mac_config_mon_status_
tlv_filter.rx_filter = ath11k_debugfs_rx_filter(ar);
}
@ -999,7 +999,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
#endif /* ATH11K_RX_DESC_H */
--- a/drivers/net/wireless/ath/ath11k/nss.c
+++ b/drivers/net/wireless/ath/ath11k/nss.c
@@ -4360,7 +4360,7 @@ static int ath11k_nss_init(struct ath11k
@@ -4363,7 +4363,7 @@ static int ath11k_nss_init(struct ath11k
/* fill rx parameters to initialize rx context */
wim->wrip.tlv_size = ab->hw_params.hal_desc_sz;

View File

@ -22,7 +22,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
#include "debug.h"
#include "mac.h"
@@ -4342,6 +4343,7 @@ static int ath11k_nss_init(struct ath11k
@@ -4345,6 +4346,7 @@ static int ath11k_nss_init(struct ath11k
nss_tx_status_t status;
struct ath11k_dp *dp;
int i, ret;
@ -30,7 +30,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
dp = &ab->dp;
@@ -4361,6 +4363,8 @@ static int ath11k_nss_init(struct ath11k
@@ -4364,6 +4366,8 @@ static int ath11k_nss_init(struct ath11k
/* fill rx parameters to initialize rx context */
wim->wrip.tlv_size = ab->hw_params.hal_desc_sz;
wim->wrip.rx_buf_len = DP_RXDMA_NSS_REFILL_RING_SIZE;
@ -39,7 +39,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
/* fill hal srng message */
wim->hssm.dev_base_addr = (u32)ab->mem_pa;
@@ -4549,11 +4553,13 @@ int ath11k_nss_pdev_init(struct ath11k_b
@@ -4552,11 +4556,13 @@ int ath11k_nss_pdev_init(struct ath11k_b
struct nss_wifili_msg *wlmsg = NULL;
nss_wifili_msg_callback_t msg_cb;
nss_tx_status_t status;
@ -54,7 +54,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
dyn_if_type = ath11k_nss_get_dynamic_interface_type(ab);
@@ -4582,6 +4588,15 @@ int ath11k_nss_pdev_init(struct ath11k_b
@@ -4585,6 +4591,15 @@ int ath11k_nss_pdev_init(struct ath11k_b
ath11k_dbg(ab, ATH11K_DBG_NSS, "nss pdev init - id:%d init ctxt:%p ifnum:%d\n",
ar->pdev->pdev_id, ar->nss.ctx, ar->nss.if_num);
@ -70,7 +70,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
wlmsg = kzalloc(sizeof(struct nss_wifili_msg), GFP_ATOMIC);
if (!wlmsg) {
ret = -ENOMEM;
@@ -4594,6 +4609,7 @@ int ath11k_nss_pdev_init(struct ath11k_b
@@ -4597,6 +4612,7 @@ int ath11k_nss_pdev_init(struct ath11k_b
pdevmsg->lmac_id = ar->lmac_id;
pdevmsg->target_pdev_id = ar->pdev->pdev_id;
pdevmsg->num_rx_swdesc = WIFILI_RX_DESC_POOL_WEIGHT * DP_RXDMA_BUF_RING_SIZE;
@ -78,7 +78,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
/* Store rxdma ring info to the message */
refill_ring_id = ar->dp.rx_refill_buf_ring.refill_buf_ring.ring_id;
@@ -4887,6 +4903,9 @@ int ath11k_nss_pdev_deinit(struct ath11k
@@ -4890,6 +4906,9 @@ int ath11k_nss_pdev_deinit(struct ath11k
/* pdev deinit msg success, dealloc, deregister and return */
ret = 0;

View File

@ -111,7 +111,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
rxcb = ATH11K_SKB_RXCB(skb);
dma_unmap_single(ab->dev, rxcb->paddr,
@@ -6429,16 +6420,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
@@ -6423,16 +6414,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
msdu_list.sw_cookie[i]);
spin_lock_bh(&rx_ring->idr_lock);

View File

@ -233,7 +233,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
return budget - quota;
}
@@ -6182,12 +6225,12 @@ static void ath11k_dp_rx_mon_dest_proces
@@ -6176,12 +6219,12 @@ static void ath11k_dp_rx_mon_dest_proces
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
&dp->rxdma_mon_buf_ring,
rx_bufs_used,
@ -248,7 +248,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
}
}
@@ -6697,7 +6740,7 @@ next_entry:
@@ -6691,7 +6734,7 @@ next_entry:
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
&dp->rxdma_mon_buf_ring,
rx_bufs_used,

View File

@ -53,7 +53,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
};
/**
@@ -1410,7 +1426,7 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1413,7 +1429,7 @@ ieee80211_tx_info_clear_status(struct ie
* @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known
* @RX_FLAG_RADIOTAP_HE: HE radiotap data is present
* (&struct ieee80211_radiotap_he, mac80211 will fill in
@ -62,7 +62,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* - DATA3_DATA_MCS
* - DATA3_DATA_DCM
* - DATA3_CODING
@@ -1418,7 +1434,7 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1421,7 +1437,7 @@ ieee80211_tx_info_clear_status(struct ie
* - DATA5_DATA_BW_RU_ALLOC
* - DATA6_NSTS
* - DATA3_STBC
@ -71,7 +71,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* from the RX info data, so leave those zeroed when building this data)
* @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present
* (&struct ieee80211_radiotap_he_mu)
@@ -1991,6 +2007,16 @@ static inline bool lockdep_vif_mutex_hel
@@ -1996,6 +2012,16 @@ static inline bool lockdep_vif_mutex_hel
lockdep_vif_mutex_held(vif))
/**
@ -88,7 +88,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* enum ieee80211_key_flags - key flags
*
* These flags are used for communication about keys between the driver
@@ -2682,6 +2708,8 @@ struct ieee80211_txq {
@@ -2687,6 +2713,8 @@ struct ieee80211_txq {
* @IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX: Hardware/driver handles transmitting
* multicast frames on all links, mac80211 should not do that.
*
@ -97,7 +97,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/
enum ieee80211_hw_flags {
@@ -2739,6 +2767,7 @@ enum ieee80211_hw_flags {
@@ -2744,6 +2772,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_CONC_MON_RX_DECAP,
IEEE80211_HW_DETECTS_COLOR_COLLISION,
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
@ -105,7 +105,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* keep last, obviously */
NUM_IEEE80211_HW_FLAGS
@@ -3751,6 +3780,10 @@ struct ieee80211_prep_tx_info {
@@ -3756,6 +3785,10 @@ struct ieee80211_prep_tx_info {
* non-MLO connections.
* The callback can sleep.
*
@ -116,7 +116,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* @prepare_multicast: Prepare for multicast filter configuration.
* This callback is optional, and its return value is passed
* to configure_filter(). This callback must be atomic.
@@ -4302,7 +4335,9 @@ struct ieee80211_ops {
@@ -4307,7 +4340,9 @@ struct ieee80211_ops {
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
u64 changed);
@ -127,7 +127,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *link_conf);
void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -4607,7 +4642,7 @@ struct ieee80211_ops {
@@ -4612,7 +4647,7 @@ struct ieee80211_ops {
int (*reset_tid_config)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta, u8 tids);
@ -361,7 +361,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
{
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1847,6 +1847,8 @@ void ieee80211_vif_cfg_change_notify(str
@@ -1844,6 +1844,8 @@ void ieee80211_vif_cfg_change_notify(str
void ieee80211_link_info_change_notify(struct ieee80211_sub_if_data *sdata,
struct ieee80211_link_data *link,
u64 changed);

View File

@ -49,7 +49,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
#endif /* __NET_CFG80211_H */
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -7363,6 +7363,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
@@ -7368,6 +7368,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
int len);
/**

View File

@ -42,18 +42,18 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (IS_ERR(sta))
sta = NULL;
+ if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
+ ap_sdata = container_of(sdata->bss,
+ struct ieee80211_sub_if_data, u.ap);
+ if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED &&
+ !is_multicast_ether_addr(skb->data)) {
+ if (sta)
+ key = rcu_dereference(sta->ptk[sta->ptk_idx]);
+ ieee80211_8023_xmit(sdata, dev, sta, key, skb);
+ rcu_read_unlock();
+ return;
+ }
+ }
+ if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
+ ap_sdata = container_of(sdata->bss,
+ struct ieee80211_sub_if_data, u.ap);
+ if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED &&
+ !is_multicast_ether_addr(skb->data)) {
+ if (sta)
+ key = rcu_dereference(sta->ptk[sta->ptk_idx]);
+ ieee80211_8023_xmit(sdata, dev, sta, key, skb);
+ rcu_read_unlock();
+ return;
+ }
+ }
+
skb_set_queue_mapping(skb, ieee80211_select_queue(sdata, sta, skb));
ieee80211_aggr_check(sdata, sta, skb);

View File

@ -21,7 +21,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -5100,6 +5100,17 @@ void ieee80211_sta_pspoll(struct ieee802
@@ -5105,6 +5105,17 @@ void ieee80211_sta_pspoll(struct ieee802
*/
void ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, u8 tid);
@ -137,23 +137,21 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
{
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4298,8 +4298,13 @@ void __ieee80211_subif_start_xmit(struct
@@ -4307,8 +4307,11 @@ void __ieee80211_subif_start_xmit(struct
sta = NULL;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
- ap_sdata = container_of(sdata->bss,
- struct ieee80211_sub_if_data, u.ap);
+ if (!ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD))
+ ap_sdata = container_of(sdata->bss,
+ struct ieee80211_sub_if_data,
+ u.ap);
+ else
+ ap_sdata = sdata;
+
if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED &&
!is_multicast_ether_addr(skb->data)) {
if (sta)
@@ -4689,7 +4694,8 @@ static void ieee80211_8023_xmit(struct i
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
- ap_sdata = container_of(sdata->bss,
- struct ieee80211_sub_if_data, u.ap);
+ if (!ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD))
+ ap_sdata = container_of(
+ sdata->bss, struct ieee80211_sub_if_data, u.ap);
+ else
+ ap_sdata = sdata;
if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED &&
!is_multicast_ether_addr(skb->data)) {
if (sta)
@@ -4698,7 +4701,8 @@ static void ieee80211_8023_xmit(struct i
info->hw_queue = sdata->vif.hw_queue[queue];

View File

@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2088,6 +2088,8 @@ enum ieee80211_key_flags {
@@ -2093,6 +2093,8 @@ enum ieee80211_key_flags {
* @tx_pn: PN used for TX keys, may be used by the driver as well if it
* needs to do software PN assignment by itself (e.g. due to TSO)
* @flags: key flags, see &enum ieee80211_key_flags.
@ -33,7 +33,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
* @keyidx: the key index (0-3)
* @keylen: key material length
* @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte)
@@ -2107,6 +2109,7 @@ struct ieee80211_key_conf {
@@ -2112,6 +2114,7 @@ struct ieee80211_key_conf {
u8 hw_key_idx;
s8 keyidx;
u16 flags;
@ -102,7 +102,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
key->conf.cipher = cipher;
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4650,16 +4650,25 @@ static void ieee80211_8023_xmit(struct i
@@ -4657,16 +4657,25 @@ static void ieee80211_8023_xmit(struct i
struct ieee80211_key *key, struct sk_buff *skb)
{
struct ieee80211_tx_info *info;

View File

@ -30,7 +30,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct ieee80211_local *local;
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4679,19 +4679,21 @@ static void ieee80211_8023_xmit(struct i
@@ -4686,19 +4686,21 @@ static void ieee80211_8023_xmit(struct i
ieee80211_aggr_check(sdata, sta, skb);
@ -64,7 +64,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
}
skb = ieee80211_tx_skb_fixup(skb, ieee80211_sdata_netdev_features(sdata));
@@ -4748,7 +4750,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4755,7 +4757,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
{
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct ethhdr *ehdr = (struct ethhdr *)skb->data;
@ -73,7 +73,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct sta_info *sta;
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
@@ -4766,9 +4768,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4773,9 +4775,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto out;
}
@ -90,7 +90,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -4779,6 +4785,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4786,6 +4792,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto skip_offload;
sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift);
@ -98,7 +98,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
ieee80211_8023_xmit(sdata, dev, sta, key, skb);
goto out;
@@ -6285,13 +6292,7 @@ start_xmit:
@@ -6292,13 +6299,7 @@ start_xmit:
mutex_lock(&local->mtx);
local_bh_disable();

View File

@ -96,7 +96,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
};
/**
@@ -1777,6 +1795,7 @@ struct ieee80211_channel_switch {
@@ -1782,6 +1800,7 @@ struct ieee80211_channel_switch {
* this is not pure P2P vif.
* @IEEE80211_VIF_DISABLE_SMPS_OVERRIDE: disable user configuration of
* SMPS mode via debugfs.
@ -104,7 +104,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
*/
enum ieee80211_vif_flags {
IEEE80211_VIF_BEACON_FILTER = BIT(0),
@@ -1784,6 +1803,7 @@ enum ieee80211_vif_flags {
@@ -1789,6 +1808,7 @@ enum ieee80211_vif_flags {
IEEE80211_VIF_SUPPORTS_UAPSD = BIT(2),
IEEE80211_VIF_GET_NOA_UPDATE = BIT(3),
IEEE80211_VIF_DISABLE_SMPS_OVERRIDE = BIT(4),
@ -112,7 +112,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
};
@@ -2771,6 +2791,7 @@ enum ieee80211_hw_flags {
@@ -2776,6 +2796,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_DETECTS_COLOR_COLLISION,
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
@ -120,7 +120,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* keep last, obviously */
NUM_IEEE80211_HW_FLAGS
@@ -4271,6 +4292,8 @@ struct ieee80211_prep_tx_info {
@@ -4276,6 +4297,8 @@ struct ieee80211_prep_tx_info {
* @set_sar_specs: Update the SAR (TX power) settings.
* @sta_set_decap_offload: Called to notify the driver when a station is allowed
* to use rx decapsulation offload
@ -129,7 +129,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
* @add_twt_setup: Update hw with TWT agreement parameters received from the peer.
* This callback allows the hw to check if requested parameters
* are supported and if there is enough room for a new agreement.
@@ -4654,6 +4677,12 @@ struct ieee80211_ops {
@@ -4659,6 +4682,12 @@ struct ieee80211_ops {
void (*sta_set_decap_offload)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enabled);
@ -142,7 +142,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
void (*add_twt_setup)(struct ieee80211_hw *hw,
struct ieee80211_sta *sta,
struct ieee80211_twt_setup *twt);
@@ -7512,4 +7541,100 @@ int ieee80211_set_active_links(struct ie
@@ -7517,4 +7546,100 @@ int ieee80211_set_active_links(struct ie
void ieee80211_set_active_links_async(struct ieee80211_vif *vif,
u16 active_links);
@ -1173,7 +1173,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata)
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -2610,7 +2610,7 @@ static struct sk_buff *ieee80211_build_h
@@ -2619,7 +2619,7 @@ static struct sk_buff *ieee80211_build_h
bool multicast;
u16 info_id = 0;
struct ieee80211_chanctx_conf *chanctx_conf = NULL;
@ -1182,7 +1182,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
int ret;
u8 link_id = u32_get_bits(ctrl_flags, IEEE80211_TX_CTRL_MLO_LINK);
@@ -2622,6 +2622,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2631,6 +2631,9 @@ static struct sk_buff *ieee80211_build_h
info_flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
#endif
@ -1192,7 +1192,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* convert Ethernet header to proper 802.11 header (based on
* operation mode) */
ethertype = (skb->data[12] << 8) | skb->data[13];
@@ -2692,6 +2695,13 @@ static struct sk_buff *ieee80211_build_h
@@ -2701,6 +2704,13 @@ static struct sk_buff *ieee80211_build_h
break;
#ifdef CPTCFG_MAC80211_MESH
case NL80211_IFTYPE_MESH_POINT:
@ -1206,7 +1206,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (!is_multicast_ether_addr(skb->data)) {
struct sta_info *next_hop;
bool mpp_lookup = true;
@@ -2955,10 +2965,10 @@ static struct sk_buff *ieee80211_build_h
@@ -2964,10 +2974,10 @@ static struct sk_buff *ieee80211_build_h
skb_reset_mac_header(skb);
@ -1221,7 +1221,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
info->ack_frame_id = info_id;
info->band = band;
@@ -4275,6 +4285,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4284,6 +4294,7 @@ void __ieee80211_subif_start_xmit(struct
struct sk_buff *next;
int len = skb->len;
struct ieee80211_key *key = NULL;
@ -1229,7 +1229,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct ieee80211_sub_if_data *ap_sdata;
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) {
@@ -4351,9 +4362,15 @@ void __ieee80211_subif_start_xmit(struct
@@ -4358,9 +4369,15 @@ void __ieee80211_subif_start_xmit(struct
goto out;
}

View File

@ -16,7 +16,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2733,6 +2733,8 @@ struct ieee80211_txq {
@@ -2738,6 +2738,8 @@ struct ieee80211_txq {
*
* @IEEE80211_HW_SUPPORTS_NSS_OFFLOAD: Hardware/driver supports NSS offload
*
@ -25,7 +25,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/
enum ieee80211_hw_flags {
@@ -2792,6 +2794,7 @@ enum ieee80211_hw_flags {
@@ -2797,6 +2799,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,

View File

@ -14,7 +14,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4762,6 +4762,67 @@ out_free:
@@ -4769,6 +4769,67 @@ out_free:
kfree_skb(skb);
}
@ -82,7 +82,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
struct net_device *dev)
{
@@ -4801,6 +4862,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4808,6 +4869,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
if (key && (!(key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)))
goto skip_offload;

View File

@ -94,7 +94,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
if (action) {
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4649,10 +4649,15 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4653,10 +4653,15 @@ void ieee80211_check_fast_rx(struct sta_
break;
case NL80211_IFTYPE_MESH_POINT:
@ -112,7 +112,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
break;
default:
goto clear;
@@ -4693,7 +4698,7 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4697,7 +4702,7 @@ void ieee80211_check_fast_rx(struct sta_
__release(check_fast_rx);
if (assign)
@ -121,7 +121,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
offload_flags = get_bss_sdata(sdata)->vif.offload_flags;
offload = offload_flags & IEEE80211_OFFLOAD_DECAP_ENABLED;
@@ -4875,6 +4880,10 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4879,6 +4884,10 @@ static bool ieee80211_invoke_fast_rx(str
u8 sa[ETH_ALEN];
} addrs __aligned(2);
struct ieee80211_sta_rx_stats *stats;
@ -132,7 +132,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
* to a common data structure; drivers can implement that per queue
@@ -4924,6 +4933,37 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4928,6 +4937,37 @@ static bool ieee80211_invoke_fast_rx(str
snap_offs += IEEE80211_CCMP_HDR_LEN;
}
@ -170,7 +170,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
!(status->rx_flags & IEEE80211_RX_AMSDU)) {
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
@@ -4961,9 +5001,33 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4965,9 +5005,33 @@ static bool ieee80211_invoke_fast_rx(str
return true;
}

View File

@ -33,7 +33,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4696,7 +4696,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4703,7 +4703,7 @@ static void ieee80211_8023_xmit(struct i
ieee80211_aggr_check(sdata, sta, skb);
@ -42,7 +42,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]);
if (tid_tx) {
@@ -4747,7 +4747,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4754,7 +4754,7 @@ static void ieee80211_8023_xmit(struct i
&info->flags, NULL);
dev_sw_netstats_tx_add(dev, skbs, len);

View File

@ -14,7 +14,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1407,8 +1407,6 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1410,8 +1410,6 @@ ieee80211_tx_info_clear_status(struct ie
* @RX_FLAG_AMPDU_IS_LAST: this subframe is the last subframe of the A-MPDU
* @RX_FLAG_AMPDU_DELIM_CRC_ERROR: A delimiter CRC error has been detected
* on this subframe
@ -23,13 +23,37 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
* @RX_FLAG_MIC_STRIPPED: The mic was stripped of this packet. Decryption was
* done by the hardware
* @RX_FLAG_ONLY_MONITOR: Report frame only to monitor interfaces without
@@ -1480,22 +1478,21 @@ enum mac80211_rx_flags {
RX_FLAG_AMPDU_LAST_KNOWN = BIT(12),
RX_FLAG_AMPDU_IS_LAST = BIT(13),
RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14),
@@ -1468,39 +1466,38 @@ ieee80211_tx_info_clear_status(struct ie
* hardware or driver)
*/
enum mac80211_rx_flags {
- RX_FLAG_MMIC_ERROR = BIT(0),
- RX_FLAG_DECRYPTED = BIT(1),
- RX_FLAG_ONLY_MONITOR = BIT(2),
- RX_FLAG_MMIC_STRIPPED = BIT(3),
- RX_FLAG_IV_STRIPPED = BIT(4),
- RX_FLAG_FAILED_FCS_CRC = BIT(5),
- RX_FLAG_FAILED_PLCP_CRC = BIT(6),
+ RX_FLAG_MMIC_ERROR = BIT(0),
+ RX_FLAG_DECRYPTED = BIT(1),
+ RX_FLAG_ONLY_MONITOR = BIT(2),
+ RX_FLAG_MMIC_STRIPPED = BIT(3),
+ RX_FLAG_IV_STRIPPED = BIT(4),
+ RX_FLAG_FAILED_FCS_CRC = BIT(5),
+ RX_FLAG_FAILED_PLCP_CRC = BIT(6),
/* one free bit at 7 */
- RX_FLAG_NO_SIGNAL_VAL = BIT(8),
- RX_FLAG_AMPDU_DETAILS = BIT(9),
- RX_FLAG_PN_VALIDATED = BIT(10),
- RX_FLAG_DUP_VALIDATED = BIT(11),
- RX_FLAG_AMPDU_LAST_KNOWN = BIT(12),
- RX_FLAG_AMPDU_IS_LAST = BIT(13),
- RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14),
- RX_FLAG_AMPDU_DELIM_CRC_KNOWN = BIT(15),
- RX_FLAG_MACTIME_END = BIT(16),
- RX_FLAG_ONLY_MONITOR = BIT(17),
- RX_FLAG_MACTIME = BIT(16) | BIT(17),
- RX_FLAG_MACTIME_PLCP_START = 1 << 16,
- RX_FLAG_MACTIME_START = 2 << 16,
- RX_FLAG_MACTIME_END = 3 << 16,
- RX_FLAG_SKIP_MONITOR = BIT(18),
- RX_FLAG_AMSDU_MORE = BIT(19),
- RX_FLAG_RADIOTAP_TLV_AT_END = BIT(20),
@ -43,8 +67,17 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
- RX_FLAG_RADIOTAP_LSIG = BIT(28),
- RX_FLAG_NO_PSDU = BIT(29),
- RX_FLAG_8023 = BIT(30),
+ RX_FLAG_MACTIME_END = BIT(15),
+ RX_FLAG_ONLY_MONITOR = BIT(16),
+ RX_FLAG_NO_SIGNAL_VAL = BIT(8),
+ RX_FLAG_AMPDU_DETAILS = BIT(9),
+ RX_FLAG_PN_VALIDATED = BIT(10),
+ RX_FLAG_DUP_VALIDATED = BIT(11),
+ RX_FLAG_AMPDU_LAST_KNOWN = BIT(12),
+ RX_FLAG_AMPDU_IS_LAST = BIT(13),
+ RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14),
+ RX_FLAG_MACTIME = BIT(15) | BIT(16),
+ RX_FLAG_MACTIME_PLCP_START = 1 << 15,
+ RX_FLAG_MACTIME_START = 2 << 15,
+ RX_FLAG_MACTIME_END = 3 << 15,
+ RX_FLAG_SKIP_MONITOR = BIT(17),
+ RX_FLAG_AMSDU_MORE = BIT(18),
+ RX_FLAG_RADIOTAP_TLV_AT_END = BIT(19),

View File

@ -20,7 +20,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -2063,6 +2063,11 @@ netdev_tx_t ieee80211_subif_start_xmit(s
@@ -2060,6 +2060,11 @@ netdev_tx_t ieee80211_subif_start_xmit(s
struct net_device *dev);
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
struct net_device *dev);
@ -44,16 +44,16 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* misc utils */
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx,
@@ -4320,7 +4321,7 @@ void __ieee80211_subif_start_xmit(struct
!is_multicast_ether_addr(skb->data)) {
if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
- ieee80211_8023_xmit(sdata, dev, sta, key, skb);
+ ieee80211_8023_xmit(sdata, dev, sta, key, skb, info_flags, ctrl_flags, cookie);
rcu_read_unlock();
return;
}
@@ -4366,7 +4367,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4327,7 +4328,7 @@ void __ieee80211_subif_start_xmit(struct
!is_multicast_ether_addr(skb->data)) {
if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
- ieee80211_8023_xmit(sdata, dev, sta, key, skb);
+ ieee80211_8023_xmit(sdata, dev, sta, key, skb, info_flags, ctrl_flags, cookie);
rcu_read_unlock();
return;
}
@@ -4373,7 +4374,7 @@ void __ieee80211_subif_start_xmit(struct
if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@ -62,7 +62,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
} else {
dev_sw_netstats_tx_add(dev, 1, skb->len);
ieee80211_xmit(sdata, sta, skb);
@@ -4664,7 +4665,8 @@ static bool ieee80211_tx_8023(struct iee
@@ -4671,7 +4672,8 @@ static bool ieee80211_tx_8023(struct iee
static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta,
@ -72,7 +72,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
{
struct ieee80211_tx_info *info;
struct ethhdr *ehdr = (struct ethhdr *)skb->data;
@@ -4720,6 +4722,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4727,6 +4729,7 @@ static void ieee80211_8023_xmit(struct i
info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info));
@ -80,7 +80,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
info->hw_queue = sdata->vif.hw_queue[queue];
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
@@ -4740,11 +4743,12 @@ static void ieee80211_8023_xmit(struct i
@@ -4747,11 +4750,12 @@ static void ieee80211_8023_xmit(struct i
memcpy(IEEE80211_SKB_CB(seg), info, sizeof(*info));
}
@ -96,7 +96,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
dev_sw_netstats_tx_add(dev, skbs, len);
if (!ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD) && sta) {
@@ -4764,7 +4768,8 @@ out_free:
@@ -4771,7 +4775,8 @@ out_free:
void ieee80211_8023_xmit_ap(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta,
@ -106,7 +106,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
{
struct ieee80211_tx_info *info;
struct ieee80211_local *local = sdata->local;
@@ -4773,6 +4778,9 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4780,6 +4785,9 @@ void ieee80211_8023_xmit_ap(struct ieee8
unsigned long flags;
int q;
u16 q_map;
@ -116,7 +116,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/*
* If the skb is shared we need to obtain our own copy.
@@ -4784,11 +4792,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4791,11 +4799,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info));
@ -133,7 +133,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP;
info->control.vif = &sdata->vif;
@@ -4822,14 +4832,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4829,14 +4839,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
drv_tx(local, &control, skb);
}
@ -158,7 +158,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
ieee80211_xmit_nss_fixup(skb, dev);
@@ -4845,14 +4864,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4852,14 +4871,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8
kfree_skb(skb);
goto out;
}
@ -176,7 +176,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -4863,13 +4883,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4870,13 +4890,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto skip_offload;
if (sdata->vif.type == NL80211_IFTYPE_AP) {
@ -192,7 +192,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto out;
skip_offload:
@@ -6375,7 +6395,10 @@ start_xmit:
@@ -6382,7 +6402,10 @@ start_xmit:
mutex_lock(&local->mtx);
local_bh_disable();

View File

@ -31,7 +31,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta,
struct ieee80211_key *key, struct sk_buff *skb,
@@ -3632,7 +3634,7 @@ ieee80211_sdata_netdev_features(struct i
@@ -3641,7 +3643,7 @@ ieee80211_sdata_netdev_features(struct i
}
static struct sk_buff *
@ -40,7 +40,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
{
if (skb_is_gso(skb)) {
struct sk_buff *segs;
@@ -3650,7 +3652,7 @@ ieee80211_tx_skb_fixup(struct sk_buff *s
@@ -3659,7 +3661,7 @@ ieee80211_tx_skb_fixup(struct sk_buff *s
if (skb_needs_linearize(skb, features) && __skb_linearize(skb))
goto free;
@ -49,7 +49,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
int ofs = skb_checksum_start_offset(skb);
if (skb->encapsulation)
@@ -3796,7 +3798,7 @@ static bool ieee80211_xmit_fast(struct i
@@ -3805,7 +3807,7 @@ static bool ieee80211_xmit_fast(struct i
memcpy(&eth, skb->data, ETH_HLEN - 2);
/* after this point (skb is modified) we cannot return false */
@ -58,7 +58,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb)
return true;
@@ -4344,7 +4346,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4351,7 +4353,7 @@ void __ieee80211_subif_start_xmit(struct
* things so we cannot really handle checksum or GSO offload.
* fix it up in software before we handle anything else.
*/
@ -67,7 +67,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb) {
len = 0;
goto out;
@@ -4715,7 +4717,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4722,7 +4724,7 @@ static void ieee80211_8023_xmit(struct i
}
}

View File

@ -23,7 +23,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2732,6 +2732,9 @@ struct ieee80211_txq {
@@ -2737,6 +2737,9 @@ struct ieee80211_txq {
*
* @IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD: Hardware suports tid calssification offload.
*
@ -33,7 +33,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/
enum ieee80211_hw_flags {
@@ -2792,6 +2795,7 @@ enum ieee80211_hw_flags {
@@ -2797,6 +2800,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD,
@ -83,9 +83,9 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
return false;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
@@ -4329,7 +4336,8 @@ void __ieee80211_subif_start_xmit(struct
}
}
@@ -4336,7 +4343,8 @@ void __ieee80211_subif_start_xmit(struct
}
}
- skb_set_queue_mapping(skb, ieee80211_select_queue(sdata, sta, skb));
+ if (unlikely(!ieee80211_hw_check(&local->hw, HAS_TX_QUEUE)))
@ -93,7 +93,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ieee80211_aggr_check(sdata, sta, skb);
if (sta) {
@@ -4681,8 +4689,10 @@ static void ieee80211_8023_xmit(struct i
@@ -4688,8 +4696,10 @@ static void ieee80211_8023_xmit(struct i
bool multicast;
u8 tid;
@ -106,7 +106,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
multicast = is_multicast_ether_addr(ra);
@@ -6379,9 +6389,12 @@ int ieee80211_tx_control_port(struct wip
@@ -6386,9 +6396,12 @@ int ieee80211_tx_control_port(struct wip
}
if (!IS_ERR(sta)) {

View File

@ -10,7 +10,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4647,16 +4647,14 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4651,16 +4651,14 @@ void ieee80211_check_fast_rx(struct sta_
break;
case NL80211_IFTYPE_MESH_POINT:
@ -23,15 +23,14 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
IEEE80211_FCTL_TODS);
-
- fastrx.internal_forward = 0;
- break;
+ fastrx.da_offs = offsetof(struct ieee80211_hdr, addr3);
+ fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr4);
+ break;
+
break;
+
default:
goto clear;
}
@@ -4878,10 +4876,7 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4882,10 +4880,7 @@ static bool ieee80211_invoke_fast_rx(str
u8 sa[ETH_ALEN];
} addrs __aligned(2);
struct ieee80211_sta_rx_stats *stats;
@ -42,7 +41,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
* to a common data structure; drivers can implement that per queue
@@ -4931,37 +4926,6 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4935,37 +4930,6 @@ static bool ieee80211_invoke_fast_rx(str
snap_offs += IEEE80211_CCMP_HDR_LEN;
}
@ -80,7 +79,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
!(status->rx_flags & IEEE80211_RX_AMSDU)) {
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
@@ -4999,30 +4963,6 @@ static bool ieee80211_invoke_fast_rx(str
@@ -5003,30 +4967,6 @@ static bool ieee80211_invoke_fast_rx(str
return true;
}

View File

@ -1,11 +0,0 @@
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -961,7 +961,7 @@ struct ieee80211_tim_ie {
u8 dtim_period;
u8 bitmap_ctrl;
/* variable size: 1 - 251 bytes */
- u8 virtual_map[1];
+ u8 virtual_map[];
} __packed;
/**

View File

@ -22,7 +22,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
@@ -86,6 +86,16 @@
#size-cells = <2>;
ranges;
+ nss_region: nss@40000000 {
+ no-map;
+ reg = <0x0 0x40000000 0x0 0x01000000>;
@ -56,5 +56,5 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
+ reg = <0x0 0x51000000 0x0 0x100000>;
+ };
};
firmware {

View File

@ -50,7 +50,7 @@ Signed-off-by: Rajkumar Ayyasamy <arajkuma@codeaurora.org>
static struct clk_rcg2 pcie0_axi_clk_src = {
.cmd_rcgr = 0x75054,
.freq_tbl = ftbl_pcie_axi_clk_src,
@@ -2029,6 +2051,78 @@ static struct clk_rcg2 gp3_clk_src = {
@@ -2031,6 +2053,78 @@ static struct clk_rcg2 gp3_clk_src = {
},
};
@ -129,7 +129,7 @@ Signed-off-by: Rajkumar Ayyasamy <arajkuma@codeaurora.org>
static struct clk_branch gcc_blsp1_ahb_clk = {
.halt_reg = 0x01008,
.clkr = {
@@ -4224,13 +4318,7 @@ static struct clk_branch gcc_gp3_clk = {
@@ -4226,13 +4320,7 @@ static struct clk_branch gcc_gp3_clk = {
},
};
@ -144,7 +144,7 @@ Signed-off-by: Rajkumar Ayyasamy <arajkuma@codeaurora.org>
.cmd_rcgr = 0x75070,
.freq_tbl = ftbl_pcie_rchng_clk_src,
.hid_width = 5,
@@ -4322,6 +4410,114 @@ static const struct alpha_pll_config nss
@@ -4324,6 +4412,114 @@ static const struct alpha_pll_config nss
.alpha_en_mask = BIT(24),
};
@ -259,7 +259,7 @@ Signed-off-by: Rajkumar Ayyasamy <arajkuma@codeaurora.org>
static struct clk_hw *gcc_ipq8074_hws[] = {
&gpll0_out_main_div2.hw,
&gpll6_out_main_div2.hw,
@@ -4330,6 +4526,7 @@ static struct clk_hw *gcc_ipq8074_hws[]
@@ -4332,6 +4528,7 @@ static struct clk_hw *gcc_ipq8074_hws[]
&gcc_xo_div4_clk_src.hw,
&nss_noc_clk_src.hw,
&nss_ppe_cdiv_clk_src.hw,
@ -267,7 +267,7 @@ Signed-off-by: Rajkumar Ayyasamy <arajkuma@codeaurora.org>
};
static struct clk_regmap *gcc_ipq8074_clks[] = {
@@ -4561,6 +4758,15 @@ static struct clk_regmap *gcc_ipq8074_cl
@@ -4563,6 +4760,15 @@ static struct clk_regmap *gcc_ipq8074_cl
[GCC_PCIE0_RCHNG_CLK] = &gcc_pcie0_rchng_clk.clkr,
[GCC_PCIE0_AXI_S_BRIDGE_CLK] = &gcc_pcie0_axi_s_bridge_clk.clkr,
[GCC_CRYPTO_PPE_CLK] = &gcc_crypto_ppe_clk.clkr,

View File

@ -16,7 +16,7 @@ Signed-off-by: Selvam Sathappan Periakaruppan <speriaka@codeaurora.org>
--- a/drivers/clk/qcom/gcc-ipq8074.c
+++ b/drivers/clk/qcom/gcc-ipq8074.c
@@ -4411,10 +4411,10 @@ static const struct alpha_pll_config nss
@@ -4413,10 +4413,10 @@ static const struct alpha_pll_config nss
};
static struct clk_branch gcc_snoc_bus_timeout2_ahb_clk = {
@ -29,7 +29,7 @@ Signed-off-by: Selvam Sathappan Periakaruppan <speriaka@codeaurora.org>
.enable_mask = BIT(0),
.hw.init = &(struct clk_init_data){
.name = "gcc_snoc_bus_timeout2_ahb_clk",
@@ -4429,10 +4429,10 @@ static struct clk_branch gcc_snoc_bus_ti
@@ -4431,10 +4431,10 @@ static struct clk_branch gcc_snoc_bus_ti
};
static struct clk_branch gcc_snoc_bus_timeout3_ahb_clk = {

View File

@ -26,7 +26,7 @@ Change-Id: I505cb560b31ad27a02c165fbe13bb33a2fc7d230
--- a/drivers/clk/qcom/gcc-ipq8074.c
+++ b/drivers/clk/qcom/gcc-ipq8074.c
@@ -2125,9 +2125,10 @@ struct clk_rcg2 adss_pwm_clk_src = {
@@ -2127,9 +2127,10 @@ struct clk_rcg2 adss_pwm_clk_src = {
static struct clk_branch gcc_blsp1_ahb_clk = {
.halt_reg = 0x01008,

View File

@ -81,7 +81,7 @@
__be16 vlan_proto, u16 vlan_id)
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2936,6 +2936,10 @@ enum netdev_cmd {
@@ -2933,6 +2933,10 @@ enum netdev_cmd {
NETDEV_OFFLOAD_XSTATS_REPORT_USED,
NETDEV_OFFLOAD_XSTATS_REPORT_DELTA,
NETDEV_XDP_FEAT_CHANGE,
@ -156,7 +156,7 @@
void fib_del_ifaddr(struct in_ifaddr *, struct in_ifaddr *);
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -2266,4 +2266,6 @@ void br_do_suppress_nd(struct sk_buff *s
@@ -2267,4 +2267,6 @@ void br_do_suppress_nd(struct sk_buff *s
u16 vid, struct net_bridge_port *p, struct nd_msg *msg);
struct nd_msg *br_is_nd_neigh_msg(struct sk_buff *skb, struct nd_msg *m);
bool br_is_neigh_suppress_enabled(const struct net_bridge_port *p, u16 vid);
@ -653,7 +653,7 @@
const struct in6_addr *daddr)
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -197,6 +197,9 @@ static void rt6_uncached_list_flush_dev(
@@ -198,6 +198,9 @@ static void rt6_uncached_list_flush_dev(
}
}
@ -663,7 +663,7 @@
static inline const void *choose_neigh_daddr(const struct in6_addr *p,
struct sk_buff *skb,
const void *daddr)
@@ -3864,6 +3867,10 @@ int ip6_route_add(struct fib6_config *cf
@@ -3866,6 +3869,10 @@ int ip6_route_add(struct fib6_config *cf
return PTR_ERR(rt);
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
@ -674,7 +674,7 @@
fib6_info_release(rt);
return err;
@@ -3885,6 +3892,9 @@ static int __ip6_del_rt(struct fib6_info
@@ -3887,6 +3894,9 @@ static int __ip6_del_rt(struct fib6_info
err = fib6_del(rt, info);
spin_unlock_bh(&table->tb6_lock);
@ -684,7 +684,7 @@
out:
fib6_info_release(rt);
return err;
@@ -6329,6 +6339,20 @@ static int ip6_route_dev_notify(struct n
@@ -6334,6 +6344,20 @@ static int ip6_route_dev_notify(struct n
return NOTIFY_OK;
}
@ -707,7 +707,7 @@
*/
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1673,6 +1673,7 @@ const char *netdev_cmd_to_name(enum netd
@@ -1699,6 +1699,7 @@ const char *netdev_cmd_to_name(enum netd
N(PRE_CHANGEADDR) N(OFFLOAD_XSTATS_ENABLE) N(OFFLOAD_XSTATS_DISABLE)
N(OFFLOAD_XSTATS_REPORT_USED) N(OFFLOAD_XSTATS_REPORT_DELTA)
N(XDP_FEAT_CHANGE)

View File

@ -466,7 +466,7 @@
#endif /* !(__LINUX_IF_PPPOX_H) */
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1762,6 +1762,36 @@ enum netdev_priv_flags {
@@ -1761,6 +1761,36 @@ enum netdev_priv_flags {
IFF_NO_IP_ALIGN = BIT_ULL(34),
};
@ -503,7 +503,7 @@
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
#define IFF_EBRIDGE IFF_EBRIDGE
#define IFF_BONDING IFF_BONDING
@@ -2127,6 +2157,7 @@ struct net_device {
@@ -2126,6 +2156,7 @@ struct net_device {
unsigned int flags;
xdp_features_t xdp_features;
unsigned long long priv_flags;

View File

@ -15,7 +15,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -3867,10 +3867,6 @@ int ip6_route_add(struct fib6_config *cf
@@ -3869,10 +3869,6 @@ int ip6_route_add(struct fib6_config *cf
return PTR_ERR(rt);
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
@ -26,7 +26,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
fib6_info_release(rt);
return err;
@@ -3892,9 +3888,6 @@ static int __ip6_del_rt(struct fib6_info
@@ -3894,9 +3890,6 @@ static int __ip6_del_rt(struct fib6_info
err = fib6_del(rt, info);
spin_unlock_bh(&table->tb6_lock);
@ -36,7 +36,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
out:
fib6_info_release(rt);
return err;
@@ -4500,6 +4493,10 @@ int ipv6_route_ioctl(struct net *net, un
@@ -4505,6 +4498,10 @@ int ipv6_route_ioctl(struct net *net, un
break;
}
rtnl_unlock();
@ -47,7 +47,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
return err;
}
@@ -5518,11 +5515,17 @@ static int inet6_rtm_delroute(struct sk_
@@ -5523,11 +5520,17 @@ static int inet6_rtm_delroute(struct sk_
}
if (cfg.fc_mp)
@ -67,7 +67,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
}
static int inet6_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh,
@@ -5539,9 +5542,15 @@ static int inet6_rtm_newroute(struct sk_
@@ -5544,9 +5547,15 @@ static int inet6_rtm_newroute(struct sk_
cfg.fc_metric = IP6_RT_PRIO_USER;
if (cfg.fc_mp)

View File

@ -52,7 +52,7 @@
dev->needs_free_netdev = true;
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -4696,6 +4696,15 @@ void dev_uc_flush(struct net_device *dev
@@ -4693,6 +4693,15 @@ void dev_uc_flush(struct net_device *dev
void dev_uc_init(struct net_device *dev);
/**
@ -68,7 +68,7 @@
* __dev_uc_sync - Synchonize device's unicast list
* @dev: device to sync
* @sync: function to call if address should be added
@@ -5222,6 +5231,11 @@ static inline bool netif_is_failover_sla
@@ -5219,6 +5228,11 @@ static inline bool netif_is_failover_sla
return dev->priv_flags & IFF_FAILOVER_SLAVE;
}
@ -443,7 +443,7 @@
#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -764,6 +764,7 @@ typedef unsigned char *sk_buff_data_t;
@@ -762,6 +762,7 @@ typedef unsigned char *sk_buff_data_t;
* @offload_fwd_mark: Packet was L2-forwarded in hardware
* @offload_l3_fwd_mark: Packet was L3-forwarded in hardware
* @tc_skip_classify: do not classify packet. set by IFB device
@ -451,7 +451,7 @@
* @tc_at_ingress: used within tc_classify to distinguish in/egress
* @redirected: packet was redirected by packet classifier
* @from_ingress: packet was redirected from the ingress path
@@ -945,6 +946,9 @@ struct sk_buff {
@@ -940,6 +941,9 @@ struct sk_buff {
__u8 tc_at_ingress:1; /* See TC_AT_INGRESS_MASK */
__u8 tc_skip_classify:1;
#endif

View File

@ -10,7 +10,7 @@
__u32 flags; /* tunnel flags */
--- a/include/net/ip_tunnels.h
+++ b/include/net/ip_tunnels.h
@@ -558,4 +558,9 @@ static inline void ip_tunnel_info_opts_s
@@ -592,4 +592,9 @@ static inline void ip_tunnel_info_opts_s
#endif /* CONFIG_INET */
@ -22,7 +22,7 @@
#endif /* __NET_IP_TUNNELS_H */
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -2411,6 +2411,26 @@ nla_put_failure:
@@ -2412,6 +2412,26 @@ nla_put_failure:
return -EMSGSIZE;
}
@ -51,7 +51,7 @@
struct ip6_tnl *tunnel = netdev_priv(dev);
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -1733,6 +1733,23 @@ nla_put_failure:
@@ -1734,6 +1734,23 @@ nla_put_failure:
return -EMSGSIZE;
}

View File

@ -59,7 +59,7 @@
/* caller should hold vxlan->hash_lock */
static struct vxlan_rdst *vxlan_fdb_find_rdst(struct vxlan_fdb *f,
union vxlan_addr *ip, __be16 port,
@@ -2581,6 +2612,9 @@ void vxlan_xmit_one(struct sk_buff *skb,
@@ -2600,6 +2631,9 @@ void vxlan_xmit_one(struct sk_buff *skb,
goto out_unlock;
}
@ -69,7 +69,7 @@
tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
ttl = ttl ? : ip4_dst_hoplimit(&rt->dst);
err = vxlan_build_skb(skb, ndst, sizeof(struct iphdr),
@@ -2652,6 +2686,9 @@ void vxlan_xmit_one(struct sk_buff *skb,
@@ -2671,6 +2705,9 @@ void vxlan_xmit_one(struct sk_buff *skb,
if (err < 0)
goto tx_error;

View File

@ -1,6 +1,6 @@
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -2417,7 +2417,7 @@ nla_put_failure:
@@ -2418,7 +2418,7 @@ nla_put_failure:
*/
void ip6_update_offload_stats(struct net_device *dev, void *ptr)
{
@ -11,7 +11,7 @@
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -1736,7 +1736,7 @@ nla_put_failure:
@@ -1737,7 +1737,7 @@ nla_put_failure:
/* QCA NSS Clients Support - Start */
void ipip6_update_offload_stats(struct net_device *dev, void *ptr)
{

View File

@ -64,7 +64,7 @@
#endif
--- a/net/bridge/br_netlink.c
+++ b/net/bridge/br_netlink.c
@@ -656,6 +656,7 @@ void br_info_notify(int event, const str
@@ -657,6 +657,7 @@ void br_info_notify(int event, const str
kfree_skb(skb);
goto errout;
}
@ -89,7 +89,7 @@
MODULE_LICENSE("GPL");
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -83,6 +83,13 @@ netdev_tx_t br_dev_xmit(struct sk_buff *
@@ -89,6 +89,13 @@ netdev_tx_t br_dev_xmit(struct sk_buff *
if (is_broadcast_ether_addr(dest)) {
br_flood(br, skb, BR_PKT_BROADCAST, false, true, vid);
} else if (is_multicast_ether_addr(dest)) {

View File

@ -1,6 +1,6 @@
--- a/crypto/authenc.c
+++ b/crypto/authenc.c
@@ -417,6 +417,8 @@ static int crypto_authenc_create(struct
@@ -415,6 +415,8 @@ static int crypto_authenc_create(struct
enc->base.cra_driver_name) >= CRYPTO_MAX_ALG_NAME)
goto err_free_inst;
@ -11,7 +11,7 @@
inst->alg.base.cra_blocksize = enc->base.cra_blocksize;
--- a/include/linux/crypto.h
+++ b/include/linux/crypto.h
@@ -101,6 +101,11 @@
@@ -86,6 +86,11 @@
#define CRYPTO_NOLOAD 0x00008000
/*
@ -26,14 +26,14 @@
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -3,6 +3,7 @@
#include <crypto/aead.h>
#include <crypto/authenc.h>
+#include <crypto/algapi.h>
#include <linux/err.h>
#include <linux/module.h>
#include <net/ip.h>
@@ -658,6 +658,7 @@ static int esp_output(struct xfrm_state
@@ -658,6 +659,7 @@ static int esp_output(struct xfrm_state
struct ip_esp_hdr *esph;
struct crypto_aead *aead;
struct esp_info esp;
@ -41,7 +41,7 @@
esp.inplace = true;
@@ -669,6 +670,11 @@ static int esp_output(struct xfrm_state
@@ -669,6 +671,11 @@ static int esp_output(struct xfrm_state
aead = x->data;
alen = crypto_aead_authsize(aead);
@ -53,7 +53,7 @@
esp.tfclen = 0;
if (x->tfcpad) {
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
@@ -890,6 +896,7 @@ static int esp_input(struct xfrm_state *
@@ -890,6 +897,7 @@ static int esp_input(struct xfrm_state *
u8 *iv;
struct scatterlist *sg;
int err = -EINVAL;
@ -61,7 +61,7 @@
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen))
goto out;
@@ -897,6 +904,12 @@ static int esp_input(struct xfrm_state *
@@ -897,6 +905,12 @@ static int esp_input(struct xfrm_state *
if (elen <= 0)
goto out;
@ -77,14 +77,14 @@
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -15,6 +15,7 @@
#include <crypto/aead.h>
#include <crypto/authenc.h>
+#include <crypto/algapi.h>
#include <linux/err.h>
#include <linux/module.h>
#include <net/ip.h>
@@ -696,6 +696,7 @@ static int esp6_output(struct xfrm_state
@@ -696,6 +697,7 @@ static int esp6_output(struct xfrm_state
struct ip_esp_hdr *esph;
struct crypto_aead *aead;
struct esp_info esp;
@ -92,7 +92,7 @@
esp.inplace = true;
@@ -707,6 +708,11 @@ static int esp6_output(struct xfrm_state
@@ -707,6 +709,11 @@ static int esp6_output(struct xfrm_state
aead = x->data;
alen = crypto_aead_authsize(aead);
@ -104,7 +104,7 @@
esp.tfclen = 0;
if (x->tfcpad) {
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
@@ -934,6 +940,7 @@ static int esp6_input(struct xfrm_state
@@ -934,6 +941,7 @@ static int esp6_input(struct xfrm_state
__be32 *seqhi;
u8 *iv;
struct scatterlist *sg;
@ -112,7 +112,7 @@
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen)) {
ret = -EINVAL;
@@ -945,6 +952,12 @@ static int esp6_input(struct xfrm_state
@@ -945,6 +953,12 @@ static int esp6_input(struct xfrm_state
goto out;
}

View File

@ -10,7 +10,7 @@
CPUHP_LUSTRE_CFS_DEAD,
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -1065,6 +1065,10 @@ struct sk_buff {
@@ -1059,6 +1059,10 @@ struct sk_buff {
/* only useable after checking ->active_extensions != 0 */
struct skb_ext *extensions;
#endif
@ -21,7 +21,7 @@
};
/* if you move pkt_type around you also must adapt those constants */
@@ -1250,7 +1254,7 @@ static inline void kfree_skb_list(struct sk_buff *segs)
@@ -1244,7 +1248,7 @@ static inline void kfree_skb_list(struct
kfree_skb_list_reason(segs, SKB_DROP_REASON_NOT_SPECIFIED);
}
@ -30,7 +30,7 @@
void consume_skb(struct sk_buff *skb);
#else
static inline void consume_skb(struct sk_buff *skb)
@@ -1262,6 +1266,9 @@ static inline void consume_skb(struct sk_buff *skb)
@@ -1256,6 +1260,9 @@ static inline void consume_skb(struct sk
void __consume_stateless_skb(struct sk_buff *skb);
void __kfree_skb(struct sk_buff *skb);
extern struct kmem_cache *skbuff_cache;
@ -79,7 +79,7 @@
+obj-$(CONFIG_SKB_RECYCLER) += skbuff_recycle.o
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -6016,10 +6016,16 @@ static int process_backlog(struct napi_struct *napi, int quota)
@@ -6043,10 +6043,16 @@ static int process_backlog(struct napi_s
napi->weight = READ_ONCE(dev_rx_weight);
while (again) {
@ -131,7 +131,7 @@
struct kmem_cache *skbuff_cache __ro_after_init;
static struct kmem_cache *skbuff_fclone_cache __ro_after_init;
@@ -551,21 +576,20 @@ static void *kmalloc_reserve(unsigned int *size, gfp_t flags, int node,
@@ -551,21 +576,20 @@ static void *kmalloc_reserve(unsigned in
bool *pfmemalloc)
{
bool ret_pfmemalloc = false;
@ -160,7 +160,7 @@
goto out;
}
@@ -648,10 +671,12 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
@@ -648,10 +672,12 @@ struct sk_buff *__alloc_skb(unsigned int
* aligned memory blocks, unless SLUB/SLAB debug is enabled.
* Both skb->head and skb_shared_info are cache line aligned.
*/
@ -174,7 +174,7 @@
* Put skb_shared_info exactly at the end of allocated zone,
* to allow max possible filling before reallocation.
*/
@@ -686,7 +711,7 @@ EXPORT_SYMBOL(__alloc_skb);
@@ -686,7 +712,7 @@ EXPORT_SYMBOL(__alloc_skb);
/**
* __netdev_alloc_skb - allocate an skbuff for rx on a specific device
* @dev: network device to receive on
@ -183,7 +183,7 @@
* @gfp_mask: get_free_pages mask, passed to alloc_skb
*
* Allocate a new &sk_buff and assign it a usage count of one. The
@@ -696,29 +721,53 @@ EXPORT_SYMBOL(__alloc_skb);
@@ -696,29 +722,53 @@ EXPORT_SYMBOL(__alloc_skb);
*
* %NULL is returned if there is no free memory.
*/
@ -242,7 +242,7 @@
if (sk_memalloc_socks())
gfp_mask |= __GFP_MEMALLOC;
@@ -747,6 +796,7 @@ struct sk_buff *__netdev_alloc_skb(struct net_device *dev, unsigned int len,
@@ -747,6 +797,7 @@ struct sk_buff *__netdev_alloc_skb(struc
if (pfmemalloc)
skb->pfmemalloc = 1;
skb->head_frag = 1;
@ -250,7 +250,7 @@
skb_success:
skb_reserve(skb, NET_SKB_PAD);
@@ -817,7 +867,8 @@ struct sk_buff *__napi_alloc_skb(struct napi_struct *napi, unsigned int len,
@@ -817,7 +868,8 @@ struct sk_buff *__napi_alloc_skb(struct
data = page_frag_alloc_1k(&nc->page_small, gfp_mask);
pfmemalloc = NAPI_SMALL_PAGE_PFMEMALLOC(nc->page_small);
} else {
@ -260,7 +260,7 @@
data = page_frag_alloc(&nc->page, len, gfp_mask);
pfmemalloc = nc->page.pfmemalloc;
@@ -975,7 +1026,7 @@ static void skb_free_head(struct sk_buff *skb, bool napi_safe)
@@ -975,7 +1027,7 @@ static void skb_free_head(struct sk_buff
}
}
@ -269,7 +269,7 @@
bool napi_safe)
{
struct skb_shared_info *shinfo = skb_shinfo(skb);
@@ -1018,7 +1069,7 @@ static void skb_release_data(struct sk_buff *skb, enum skb_drop_reason reason,
@@ -1018,7 +1070,7 @@ exit:
/*
* Free an skbuff by memory without cleaning the state.
*/
@ -278,7 +278,7 @@
{
struct sk_buff_fclones *fclones;
@@ -1282,7 +1333,6 @@ void skb_tx_error(struct sk_buff *skb)
@@ -1282,7 +1334,6 @@ void skb_tx_error(struct sk_buff *skb)
}
EXPORT_SYMBOL(skb_tx_error);
@ -286,7 +286,7 @@
/**
* consume_skb - free an skbuff
* @skb: buffer to free
@@ -1291,13 +1341,48 @@ EXPORT_SYMBOL(skb_tx_error);
@@ -1291,13 +1342,48 @@ EXPORT_SYMBOL(skb_tx_error);
* Functions identically to kfree_skb, but kfree_skb assumes that the frame
* is being dropped after a failure and notes that
*/
@ -300,14 +300,14 @@
+ /*Tian: Not sure if we need to continue using this since
+ * since unref does the work in 5.4
+ */
+
+ /*
+ if (likely(atomic_read(&skb->users) == 1))
+ smp_rmb();
+ else if (likely(!atomic_dec_and_test(&skb->users)))
+ return;
+ */
+
+ /* If possible we'd like to recycle any skb rather than just free it,
+ * but in order to do that we need to release any head state too.
+ * We don't want to do this later because we'll be in a pre-emption
@ -336,7 +336,7 @@
}
EXPORT_SYMBOL(consume_skb);
#endif
@@ -2107,6 +2192,8 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,
@@ -2113,6 +2199,8 @@ int pskb_expand_head(struct sk_buff *skb
if (skb_pfmemalloc(skb))
gfp_mask |= __GFP_MEMALLOC;
@ -345,7 +345,7 @@
data = kmalloc_reserve(&size, gfp_mask, NUMA_NO_NODE, NULL);
if (!data)
goto nodata;
@@ -4854,6 +4941,10 @@ static void skb_extensions_init(void) {}
@@ -4869,6 +4957,10 @@ static void skb_extensions_init(void) {}
void __init skb_init(void)
{
@ -356,7 +356,7 @@
skbuff_cache = kmem_cache_create_usercopy("skbuff_head_cache",
sizeof(struct sk_buff),
0,
@@ -4879,6 +4970,7 @@ void __init skb_init(void)
@@ -4894,6 +4986,7 @@ void __init skb_init(void)
SKB_SMALL_HEAD_HEADROOM,
NULL);
skb_extensions_init();
@ -364,7 +364,7 @@
}
static int
@@ -6382,6 +6474,8 @@ static int pskb_carve_inside_header(struct sk_buff *skb, const u32 off,
@@ -6397,6 +6490,8 @@ static int pskb_carve_inside_header(stru
if (skb_pfmemalloc(skb))
gfp_mask |= __GFP_MEMALLOC;
@ -373,7 +373,7 @@
data = kmalloc_reserve(&size, gfp_mask, NUMA_NO_NODE, NULL);
if (!data)
return -ENOMEM;
@@ -6498,6 +6592,8 @@ static int pskb_carve_inside_nonlinear(struct sk_buff *skb, const u32 off,
@@ -6513,6 +6608,8 @@ static int pskb_carve_inside_nonlinear(s
if (skb_pfmemalloc(skb))
gfp_mask |= __GFP_MEMALLOC;

View File

@ -22,7 +22,7 @@
keys {
--- a/arch/arm64/boot/dts/qcom/ipq8070-rm2-6.dts
+++ b/arch/arm64/boot/dts/qcom/ipq8070-rm2-6.dts
@@ -32,7 +32,7 @@
@@ -33,7 +33,7 @@
chosen {
stdout-path = "serial0:115200n8";
@ -44,7 +44,7 @@
keys {
--- a/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts
+++ b/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts
@@ -24,7 +24,7 @@
@@ -25,7 +25,7 @@
chosen {
stdout-path = "serial0:115200n8";
@ -55,7 +55,7 @@
keys {
--- a/arch/arm64/boot/dts/qcom/ipq8072-ax880.dts
+++ b/arch/arm64/boot/dts/qcom/ipq8072-ax880.dts
@@ -29,7 +29,7 @@
@@ -30,7 +30,7 @@
chosen {
stdout-path = "serial0:115200n8";
@ -88,7 +88,7 @@
keys {
--- a/arch/arm64/boot/dts/qcom/ipq8174-mx4200.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq8174-mx4200.dtsi
@@ -29,7 +29,7 @@
@@ -30,7 +30,7 @@
chosen {
stdout-path = "serial0:115200n8";