refresh patches
This commit is contained in:
parent
f19e28248b
commit
f65d233762
@ -18,7 +18,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
@@ -10090,7 +10090,6 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -10091,7 +10091,6 @@ int ath10k_mac_register(struct ath10k *a
|
||||
ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
|
||||
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
|
||||
|
@ -12,7 +12,7 @@
|
||||
} else if (sta->deflink.ht_cap.ht_supported &&
|
||||
!ath11k_peer_assoc_h_ht_masked(ht_mcs_mask)) {
|
||||
if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_40)
|
||||
@@ -5490,6 +5490,9 @@ static void ath11k_mac_setup_ht_vht_cap(
|
||||
@@ -5491,6 +5491,9 @@ static void ath11k_mac_setup_ht_vht_cap(
|
||||
*ht_cap_info = ht_cap;
|
||||
band->ht_cap = ath11k_create_ht_cap(ar, ht_cap,
|
||||
rate_cap_rx_chainmask);
|
||||
|
@ -124,7 +124,7 @@ Best regards,
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath12k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath12k/mac.c
|
||||
@@ -5185,9 +5185,7 @@ static void ath12k_mac_setup_ht_vht_cap(
|
||||
@@ -5186,9 +5186,7 @@ static void ath12k_mac_setup_ht_vht_cap(
|
||||
rate_cap_rx_chainmask);
|
||||
}
|
||||
|
||||
|
@ -284,7 +284,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
ath12k_control_beaconing(arvif, info);
|
||||
|
||||
if (arvif->is_up && vif->bss_conf.he_support &&
|
||||
@@ -5351,11 +5483,14 @@ static void ath12k_mac_copy_he_cap(struc
|
||||
@@ -5352,11 +5484,14 @@ static void ath12k_mac_copy_he_cap(struc
|
||||
|
||||
he_cap_elem->mac_cap_info[1] &=
|
||||
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_MASK;
|
||||
@ -302,7 +302,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
he_cap_elem->phy_cap_info[5] |= num_tx_chains - 1;
|
||||
|
||||
switch (iftype) {
|
||||
@@ -6317,71 +6452,6 @@ static int ath12k_mac_setup_vdev_create_
|
||||
@@ -6318,71 +6453,6 @@ static int ath12k_mac_setup_vdev_create_
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -374,7 +374,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
static void ath12k_mac_update_vif_offload(struct ath12k_vif *arvif)
|
||||
{
|
||||
struct ieee80211_vif *vif = arvif->vif;
|
||||
@@ -7339,7 +7409,6 @@ ath12k_mac_vdev_start_restart(struct ath
|
||||
@@ -7340,7 +7410,6 @@ ath12k_mac_vdev_start_restart(struct ath
|
||||
struct ath12k_base *ab = ar->ab;
|
||||
struct wmi_vdev_start_req_arg arg = {};
|
||||
const struct cfg80211_chan_def *chandef = &ctx->def;
|
||||
@ -382,7 +382,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
int ret;
|
||||
|
||||
lockdep_assert_held(&ar->conf_mutex);
|
||||
@@ -7395,14 +7464,6 @@ ath12k_mac_vdev_start_restart(struct ath
|
||||
@@ -7396,14 +7465,6 @@ ath12k_mac_vdev_start_restart(struct ath
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
|
||||
/* TODO: Notify if secondary 80Mhz also needs radar detection */
|
||||
|
@ -119,7 +119,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath12k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath12k/mac.c
|
||||
@@ -5518,12 +5518,24 @@ static __le16 ath12k_mac_setup_he_6ghz_c
|
||||
@@ -5519,12 +5519,24 @@ static __le16 ath12k_mac_setup_he_6ghz_c
|
||||
return cpu_to_le16(bcap->he_6ghz_capa);
|
||||
}
|
||||
|
||||
@ -145,7 +145,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
|
||||
he_cap->has_he = true;
|
||||
memcpy(he_cap_elem->mac_cap_info, band_cap->he_cap_info,
|
||||
@@ -5561,13 +5573,7 @@ static void ath12k_mac_copy_he_cap(struc
|
||||
@@ -5562,13 +5574,7 @@ static void ath12k_mac_copy_he_cap(struc
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath12k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath12k/mac.c
|
||||
@@ -5518,20 +5518,40 @@ static __le16 ath12k_mac_setup_he_6ghz_c
|
||||
@@ -5519,20 +5519,40 @@ static __le16 ath12k_mac_setup_he_6ghz_c
|
||||
return cpu_to_le16(bcap->he_6ghz_capa);
|
||||
}
|
||||
|
||||
@ -166,7 +166,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
int iftype, u8 num_tx_chains,
|
||||
struct ieee80211_sta_he_cap *he_cap)
|
||||
{
|
||||
@@ -5573,7 +5593,7 @@ static void ath12k_mac_copy_he_cap(struc
|
||||
@@ -5574,7 +5594,7 @@ static void ath12k_mac_copy_he_cap(struc
|
||||
break;
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
memset(he_cap->ppe_thres, 0, sizeof(he_cap->ppe_thres));
|
||||
if (he_cap_elem->phy_cap_info[6] &
|
||||
IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT)
|
||||
@@ -5762,7 +5782,7 @@ static int ath12k_mac_copy_sband_iftype_
|
||||
@@ -5763,7 +5783,7 @@ static int ath12k_mac_copy_sband_iftype_
|
||||
|
||||
data[idx].types_mask = BIT(i);
|
||||
|
||||
|
@ -604,7 +604,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
ath12k_peer_assoc_prepare(ar, arvif->vif, sta,
|
||||
&peer_arg, true);
|
||||
|
||||
@@ -7058,10 +7317,13 @@ static int ath12k_mac_op_add_interface(s
|
||||
@@ -7059,10 +7318,13 @@ static int ath12k_mac_op_add_interface(s
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(arvif->bitrate_mask.control); i++) {
|
||||
arvif->bitrate_mask.control[i].legacy = 0xffffffff;
|
||||
@ -618,7 +618,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
}
|
||||
|
||||
/* Allocate Default Queue now and reassign during actual vdev create */
|
||||
@@ -8222,19 +8484,40 @@ ath12k_mac_has_single_legacy_rate(struct
|
||||
@@ -8223,19 +8485,40 @@ ath12k_mac_has_single_legacy_rate(struct
|
||||
if (ath12k_mac_bitrate_mask_num_vht_rates(ar, band, mask))
|
||||
return false;
|
||||
|
||||
@ -659,7 +659,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
int i;
|
||||
|
||||
/* No need to consider legacy here. Basic rates are always present
|
||||
@@ -8261,7 +8544,24 @@ ath12k_mac_bitrate_mask_get_single_nss(s
|
||||
@@ -8262,7 +8545,24 @@ ath12k_mac_bitrate_mask_get_single_nss(s
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -685,7 +685,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
return false;
|
||||
|
||||
if (ht_nss_mask == 0)
|
||||
@@ -8308,54 +8608,158 @@ ath12k_mac_get_single_legacy_rate(struct
|
||||
@@ -8309,54 +8609,158 @@ ath12k_mac_get_single_legacy_rate(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -864,7 +864,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -8384,6 +8788,31 @@ ath12k_mac_vht_mcs_range_present(struct
|
||||
@@ -8385,6 +8789,31 @@ ath12k_mac_vht_mcs_range_present(struct
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -896,7 +896,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
static void ath12k_mac_set_bitrate_mask_iter(void *data,
|
||||
struct ieee80211_sta *sta)
|
||||
{
|
||||
@@ -8423,6 +8852,54 @@ static void ath12k_mac_disable_peer_fixe
|
||||
@@ -8424,6 +8853,54 @@ static void ath12k_mac_disable_peer_fixe
|
||||
}
|
||||
|
||||
static int
|
||||
@ -951,7 +951,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
ath12k_mac_op_set_bitrate_mask(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
const struct cfg80211_bitrate_mask *mask)
|
||||
@@ -8433,13 +8910,17 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
@@ -8434,13 +8911,17 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
enum nl80211_band band;
|
||||
const u8 *ht_mcs_mask;
|
||||
const u16 *vht_mcs_mask;
|
||||
@ -970,7 +970,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
|
||||
if (ath12k_mac_vif_chan(vif, &def))
|
||||
return -EPERM;
|
||||
@@ -8447,6 +8928,7 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
@@ -8448,6 +8929,7 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
band = def.chan->band;
|
||||
ht_mcs_mask = mask->control[band].ht_mcs;
|
||||
vht_mcs_mask = mask->control[band].vht_mcs;
|
||||
@ -978,7 +978,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
ldpc = !!(ar->ht_cap_info & WMI_HT_CAP_LDPC);
|
||||
|
||||
sgi = mask->control[band].gi;
|
||||
@@ -8455,6 +8937,9 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
@@ -8456,6 +8938,9 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -988,7 +988,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
/* mac80211 doesn't support sending a fixed HT/VHT MCS alone, rather it
|
||||
* requires passing at least one of used basic rates along with them.
|
||||
* Fixed rate setting across different preambles(legacy, HT, VHT) is
|
||||
@@ -8474,15 +8959,27 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
@@ -8475,15 +8960,27 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
ieee80211_iterate_stations_mtx(hw,
|
||||
ath12k_mac_disable_peer_fixed_rate,
|
||||
arvif);
|
||||
@ -1020,7 +1020,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
|
||||
/* If multiple rates across different preambles are given
|
||||
* we can reconfigure this info with all peers using PEER_ASSOC
|
||||
@@ -8518,12 +9015,22 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
@@ -8519,12 +9016,22 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -1045,7 +1045,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
arvif->bitrate_mask = *mask;
|
||||
ieee80211_iterate_stations_mtx(hw,
|
||||
ath12k_mac_set_bitrate_mask_iter,
|
||||
@@ -8534,9 +9041,10 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
@@ -8535,9 +9042,10 @@ ath12k_mac_op_set_bitrate_mask(struct ie
|
||||
|
||||
mutex_lock(&ar->conf_mutex);
|
||||
|
||||
|
@ -200,7 +200,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
}
|
||||
|
||||
if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_80)
|
||||
@@ -5805,8 +5779,6 @@ static void ath12k_mac_set_hemcsmap(stru
|
||||
@@ -5806,8 +5780,6 @@ static void ath12k_mac_set_hemcsmap(stru
|
||||
mcs_nss->tx_mcs_80 = cpu_to_le16(txmcs_map & 0xffff);
|
||||
mcs_nss->rx_mcs_160 = cpu_to_le16(rxmcs_map & 0xffff);
|
||||
mcs_nss->tx_mcs_160 = cpu_to_le16(txmcs_map & 0xffff);
|
||||
@ -209,7 +209,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
}
|
||||
|
||||
static void ath12k_mac_copy_he_cap(struct ath12k *ar,
|
||||
@@ -5828,6 +5800,7 @@ static void ath12k_mac_copy_he_cap(struc
|
||||
@@ -5829,6 +5801,7 @@ static void ath12k_mac_copy_he_cap(struc
|
||||
IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G |
|
||||
IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
|
||||
IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;
|
||||
@ -217,7 +217,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
he_cap_elem->phy_cap_info[0] &=
|
||||
~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G;
|
||||
he_cap_elem->phy_cap_info[5] &=
|
||||
@@ -8494,10 +8467,6 @@ static __le16
|
||||
@@ -8495,10 +8468,6 @@ static __le16
|
||||
ath12k_mac_get_tx_mcs_map(const struct ieee80211_sta_he_cap *he_cap)
|
||||
{
|
||||
if (he_cap->he_cap_elem.phy_cap_info[0] &
|
||||
|
@ -263,7 +263,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
ath12k_peer_assoc_h_smps(sta, arg);
|
||||
|
||||
/* TODO: amsdu_disable req? */
|
||||
@@ -5551,10 +5612,8 @@ ath12k_create_vht_cap(struct ath12k *ar,
|
||||
@@ -5552,10 +5613,8 @@ ath12k_create_vht_cap(struct ath12k *ar,
|
||||
|
||||
ath12k_set_vht_txbf_cap(ar, &vht_cap.cap);
|
||||
|
||||
@ -276,7 +276,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
|
||||
rxmcs_map = 0;
|
||||
txmcs_map = 0;
|
||||
@@ -9710,7 +9769,8 @@ static int ath12k_mac_setup_iface_combin
|
||||
@@ -9711,7 +9770,8 @@ static int ath12k_mac_setup_iface_combin
|
||||
combinations[0].radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
|
||||
BIT(NL80211_CHAN_WIDTH_20) |
|
||||
BIT(NL80211_CHAN_WIDTH_40) |
|
||||
@ -286,7 +286,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
|
||||
wiphy->iface_combinations = combinations;
|
||||
wiphy->n_iface_combinations = 1;
|
||||
@@ -9926,6 +9986,9 @@ static int ath12k_mac_hw_register(struct
|
||||
@@ -9927,6 +9987,9 @@ static int ath12k_mac_hw_register(struct
|
||||
ieee80211_hw_set(hw, SUPPORTS_TX_FRAG);
|
||||
ieee80211_hw_set(hw, REPORTS_LOW_ACK);
|
||||
|
||||
|
@ -133,7 +133,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
arg->peer_bw_rxnss_override = ATH12K_BW_NSS_MAP_ENABLE;
|
||||
|
||||
if (!rx_nss) {
|
||||
@@ -5635,6 +5637,12 @@ ath12k_create_vht_cap(struct ath12k *ar,
|
||||
@@ -5636,6 +5638,12 @@ ath12k_create_vht_cap(struct ath12k *ar,
|
||||
vht_cap.vht_mcs.rx_mcs_map = cpu_to_le16(rxmcs_map);
|
||||
vht_cap.vht_mcs.tx_mcs_map = cpu_to_le16(txmcs_map);
|
||||
|
||||
@ -146,7 +146,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
return vht_cap;
|
||||
}
|
||||
|
||||
@@ -5815,11 +5823,12 @@ static void ath12k_mac_set_hemcsmap(stru
|
||||
@@ -5816,11 +5824,12 @@ static void ath12k_mac_set_hemcsmap(stru
|
||||
struct ieee80211_sta_he_cap *he_cap)
|
||||
{
|
||||
struct ieee80211_he_mcs_nss_supp *mcs_nss = &he_cap->he_mcs_nss_supp;
|
||||
@ -162,7 +162,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (i < ar->num_tx_chains &&
|
||||
(ar->cfg_tx_chainmask >> cap->tx_chain_mask_shift) & BIT(i))
|
||||
@@ -5832,12 +5841,24 @@ static void ath12k_mac_set_hemcsmap(stru
|
||||
@@ -5833,12 +5842,24 @@ static void ath12k_mac_set_hemcsmap(stru
|
||||
rxmcs_map |= IEEE80211_HE_MCS_SUPPORT_0_11 << (i * 2);
|
||||
else
|
||||
rxmcs_map |= IEEE80211_HE_MCS_NOT_SUPPORTED << (i * 2);
|
||||
|
@ -144,7 +144,7 @@
|
||||
debugfs_create_file("dfs_simulate_radar", 0200,
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -6034,9 +6034,9 @@ static int ath11k_mac_mgmt_tx(struct ath
|
||||
@@ -6035,9 +6035,9 @@ static int ath11k_mac_mgmt_tx(struct ath
|
||||
*/
|
||||
if (is_prb_rsp &&
|
||||
atomic_read(&ar->num_pending_mgmt_tx) > ATH11K_PRB_RSP_DROP_THRESHOLD) {
|
||||
@ -156,7 +156,7 @@
|
||||
}
|
||||
|
||||
if (skb_queue_len_lockless(q) >= ATH11K_TX_MGMT_NUM_PENDING_MAX) {
|
||||
@@ -6062,9 +6062,11 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
@@ -6063,9 +6063,11 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
|
||||
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
|
||||
struct ieee80211_key_conf *key = info->control.hw_key;
|
||||
@ -168,7 +168,7 @@
|
||||
int ret;
|
||||
|
||||
memset(skb_cb, 0, sizeof(*skb_cb));
|
||||
@@ -6078,12 +6080,21 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
@@ -6079,12 +6081,21 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
if (info_flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
|
||||
skb_cb->flags |= ATH11K_SKB_HW_80211_ENCAP;
|
||||
} else if (ieee80211_is_mgmt(hdr->frame_control)) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -10214,6 +10214,8 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10215,6 +10215,8 @@ static int __ath11k_mac_register(struct
|
||||
wiphy_ext_feature_set(ar->hw->wiphy,
|
||||
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);
|
||||
|
||||
|
@ -2998,7 +2998,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
int ath11k_dp_pdev_reo_setup(struct ath11k_base *ab);
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -6253,6 +6253,16 @@ static int ath11k_mac_op_start(struct ie
|
||||
@@ -6254,6 +6254,16 @@ static int ath11k_mac_op_start(struct ie
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
@ -622,7 +622,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
exit:
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
return ret;
|
||||
@@ -6102,10 +6165,14 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
@@ -6103,10 +6166,14 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
if (control->sta)
|
||||
arsta = ath11k_sta_to_arsta(control->sta);
|
||||
|
||||
@ -638,7 +638,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6127,6 +6194,8 @@ static int ath11k_mac_config_mon_status_
|
||||
@@ -6128,6 +6195,8 @@ static int ath11k_mac_config_mon_status_
|
||||
|
||||
if (enable) {
|
||||
tlv_filter = ath11k_mac_mon_status_filter_default;
|
||||
@ -647,7 +647,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
if (ath11k_debugfs_rx_filter(ar))
|
||||
tlv_filter.rx_filter = ath11k_debugfs_rx_filter(ar);
|
||||
}
|
||||
@@ -6425,7 +6494,7 @@ static int ath11k_mac_setup_vdev_create_
|
||||
@@ -6426,7 +6495,7 @@ static int ath11k_mac_setup_vdev_create_
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -656,7 +656,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
struct ieee80211_vif *vif)
|
||||
{
|
||||
struct ath11k *ar = hw->priv;
|
||||
@@ -6471,6 +6540,8 @@ static void ath11k_mac_op_update_vif_off
|
||||
@@ -6472,6 +6541,8 @@ static void ath11k_mac_op_update_vif_off
|
||||
arvif->vdev_id, ret);
|
||||
vif->offload_flags &= ~IEEE80211_OFFLOAD_DECAP_ENABLED;
|
||||
}
|
||||
@ -665,7 +665,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
|
||||
static bool ath11k_mac_vif_ap_active_any(struct ath11k_base *ab)
|
||||
@@ -6601,6 +6672,8 @@ static int ath11k_mac_vdev_delete(struct
|
||||
@@ -6602,6 +6673,8 @@ static int ath11k_mac_vdev_delete(struct
|
||||
|
||||
reinit_completion(&ar->vdev_delete_done);
|
||||
|
||||
@ -674,7 +674,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
ret = ath11k_wmi_vdev_delete(ar, arvif->vdev_id);
|
||||
if (ret) {
|
||||
ath11k_warn(ar->ab, "failed to delete WMI vdev %d: %d\n",
|
||||
@@ -6754,7 +6827,34 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6755,7 +6828,34 @@ static int ath11k_mac_op_add_interface(s
|
||||
list_add(&arvif->list, &ar->arvifs);
|
||||
spin_unlock_bh(&ar->data_lock);
|
||||
|
||||
@ -710,7 +710,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
|
||||
nss = get_num_chains(ar->cfg_tx_chainmask) ? : 1;
|
||||
ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
|
||||
@@ -6884,6 +6984,7 @@ err_peer_del:
|
||||
@@ -6885,6 +6985,7 @@ err_peer_del:
|
||||
}
|
||||
|
||||
err_vdev_del:
|
||||
@ -718,7 +718,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
ath11k_mac_vdev_delete(ar, arvif);
|
||||
spin_lock_bh(&ar->data_lock);
|
||||
list_del(&arvif->list);
|
||||
@@ -7402,6 +7503,10 @@ ath11k_mac_update_vif_chan(struct ath11k
|
||||
@@ -7403,6 +7504,10 @@ ath11k_mac_update_vif_chan(struct ath11k
|
||||
arvif->vdev_id, ret);
|
||||
continue;
|
||||
}
|
||||
@ -729,7 +729,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
|
||||
/* Restart the internal monitor vdev on new channel */
|
||||
@@ -9029,6 +9134,8 @@ static void ath11k_mac_op_sta_statistics
|
||||
@@ -9030,6 +9135,8 @@ static void ath11k_mac_op_sta_statistics
|
||||
sinfo->signal_avg += ATH11K_DEFAULT_NOISE_FLOOR;
|
||||
|
||||
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
|
||||
@ -738,7 +738,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
@@ -9726,6 +9833,7 @@ static const struct ieee80211_ops ath11k
|
||||
@@ -9727,6 +9834,7 @@ static const struct ieee80211_ops ath11k
|
||||
.update_vif_offload = ath11k_mac_op_update_vif_offload,
|
||||
.config = ath11k_mac_op_config,
|
||||
.bss_info_changed = ath11k_mac_op_bss_info_changed,
|
||||
@ -746,7 +746,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
.configure_filter = ath11k_mac_op_configure_filter,
|
||||
.hw_scan = ath11k_mac_op_hw_scan,
|
||||
.cancel_hw_scan = ath11k_mac_op_cancel_hw_scan,
|
||||
@@ -10164,7 +10272,8 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10165,7 +10273,8 @@ static int __ath11k_mac_register(struct
|
||||
ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW);
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_REORDERING_BUFFER);
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_AMSDU_IN_AMPDU);
|
||||
@ -756,7 +756,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
|
||||
ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS;
|
||||
@@ -10279,6 +10388,9 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10280,6 +10389,9 @@ static int __ath11k_mac_register(struct
|
||||
ab->hw_params.bios_sar_capa)
|
||||
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;
|
||||
|
||||
|
@ -369,7 +369,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
|
||||
int ath11k_dp_tx(struct ath11k *ar, struct ath11k_vif *arvif,
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -10405,6 +10405,9 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10406,6 +10406,9 @@ static int __ath11k_mac_register(struct
|
||||
*/
|
||||
ar->hw->wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR);
|
||||
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -6015,6 +6015,16 @@ static int ath11k_mac_mgmt_tx_wmi(struct
|
||||
@@ -6016,6 +6016,16 @@ static int ath11k_mac_mgmt_tx_wmi(struct
|
||||
|
||||
ATH11K_SKB_CB(skb)->paddr = paddr;
|
||||
|
||||
@ -39,7 +39,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
ret = ath11k_wmi_mgmt_send(ar, arvif->vdev_id, buf_id, skb);
|
||||
if (ret) {
|
||||
ath11k_warn(ar->ab, "failed to send mgmt frame: %d\n", ret);
|
||||
@@ -6082,8 +6092,8 @@ static void ath11k_mgmt_over_wmi_tx_work
|
||||
@@ -6083,8 +6093,8 @@ static void ath11k_mgmt_over_wmi_tx_work
|
||||
}
|
||||
}
|
||||
|
||||
@ -50,7 +50,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
{
|
||||
struct sk_buff_head *q = &ar->wmi_mgmt_tx_queue;
|
||||
|
||||
@@ -6145,7 +6155,7 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
@@ -6146,7 +6156,7 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
} else if (ieee80211_is_mgmt(hdr->frame_control)) {
|
||||
frm_type = FIELD_GET(IEEE80211_FCTL_STYPE, hdr->frame_control);
|
||||
is_prb_rsp = ieee80211_is_probe_resp(hdr->frame_control);
|
||||
@ -59,7 +59,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
if (ret) {
|
||||
if (ret != -EBUSY)
|
||||
ath11k_warn(ar->ab, "failed to queue management frame %d\n",
|
||||
@@ -6160,6 +6170,20 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
@@ -6161,6 +6171,20 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
spin_unlock_bh(&ar->data_lock);
|
||||
}
|
||||
return;
|
||||
|
@ -214,7 +214,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
ieee80211_queue_work(ar->hw, &arsta->set_4addr_wk);
|
||||
arsta->use_4addr_set = true;
|
||||
}
|
||||
@@ -6527,6 +6651,9 @@ static int ath11k_mac_op_update_vif_offl
|
||||
@@ -6528,6 +6652,9 @@ static int ath11k_mac_op_update_vif_offl
|
||||
u32 param_id, param_value;
|
||||
int ret;
|
||||
|
||||
@ -224,7 +224,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
param_id = WMI_VDEV_PARAM_TX_ENCAP_TYPE;
|
||||
if (ath11k_frame_mode != ATH11K_HW_TXRX_ETHERNET ||
|
||||
(vif->type != NL80211_IFTYPE_STATION &&
|
||||
@@ -6757,7 +6884,8 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6758,7 +6885,8 @@ static int ath11k_mac_op_add_interface(s
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -234,7 +234,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
ath11k_warn(ab, "failed to create vdev %u, reached max vdev limit %d\n",
|
||||
ar->num_created_vdevs, TARGET_NUM_VDEVS(ab));
|
||||
ret = -EBUSY;
|
||||
@@ -6770,6 +6898,28 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6771,6 +6899,28 @@ static int ath11k_mac_op_add_interface(s
|
||||
arvif->vif = vif;
|
||||
|
||||
INIT_LIST_HEAD(&arvif->list);
|
||||
@ -263,7 +263,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
INIT_WORK(&arvif->bcn_tx_work, ath11k_mac_bcn_tx_work);
|
||||
INIT_DELAYED_WORK(&arvif->connection_loss_work,
|
||||
ath11k_mac_vif_sta_connection_loss_work);
|
||||
@@ -6802,6 +6952,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6803,6 +6953,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
fallthrough;
|
||||
case NL80211_IFTYPE_AP:
|
||||
arvif->vdev_type = WMI_VDEV_TYPE_AP;
|
||||
@ -271,7 +271,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
if (vif->p2p)
|
||||
arvif->vdev_subtype = WMI_VDEV_SUBTYPE_P2P_GO;
|
||||
break;
|
||||
@@ -7037,14 +7188,31 @@ static void ath11k_mac_op_remove_interfa
|
||||
@@ -7038,14 +7189,31 @@ static void ath11k_mac_op_remove_interfa
|
||||
struct ath11k *ar = hw->priv;
|
||||
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
|
||||
struct ath11k_base *ab = ar->ab;
|
||||
@ -305,7 +305,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
ath11k_dbg(ab, ATH11K_DBG_MAC, "remove interface (vdev %d)\n",
|
||||
arvif->vdev_id);
|
||||
|
||||
@@ -7061,6 +7229,14 @@ static void ath11k_mac_op_remove_interfa
|
||||
@@ -7062,6 +7230,14 @@ static void ath11k_mac_op_remove_interfa
|
||||
if (ret)
|
||||
ath11k_warn(ab, "failed to submit AP self-peer removal on vdev %d: %d\n",
|
||||
arvif->vdev_id, ret);
|
||||
@ -320,7 +320,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
}
|
||||
|
||||
ret = ath11k_mac_vdev_delete(ar, arvif);
|
||||
@@ -7102,8 +7278,7 @@ err_vdev_del:
|
||||
@@ -7103,8 +7279,7 @@ err_vdev_del:
|
||||
/* Recalc txpower for remaining vdev */
|
||||
ath11k_mac_txpower_recalc(ar);
|
||||
|
||||
@ -330,7 +330,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
}
|
||||
|
||||
@@ -7163,16 +7338,17 @@ static int ath11k_mac_op_ampdu_action(st
|
||||
@@ -7164,16 +7339,17 @@ static int ath11k_mac_op_ampdu_action(st
|
||||
struct ieee80211_ampdu_params *params)
|
||||
{
|
||||
struct ath11k *ar = hw->priv;
|
||||
@ -350,7 +350,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
break;
|
||||
case IEEE80211_AMPDU_TX_START:
|
||||
case IEEE80211_AMPDU_TX_STOP_CONT:
|
||||
@@ -9100,6 +9276,7 @@ static void ath11k_mac_op_sta_statistics
|
||||
@@ -9101,6 +9277,7 @@ static void ath11k_mac_op_sta_statistics
|
||||
{
|
||||
struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
|
||||
struct ath11k *ar = arsta->arvif->ar;
|
||||
@ -358,7 +358,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
s8 signal;
|
||||
bool db2dbm = test_bit(WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT,
|
||||
ar->ab->wmi_ab.svc_map);
|
||||
@@ -9159,7 +9336,8 @@ static void ath11k_mac_op_sta_statistics
|
||||
@@ -9160,7 +9337,8 @@ static void ath11k_mac_op_sta_statistics
|
||||
|
||||
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
|
||||
|
||||
|
@ -354,7 +354,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
switch (key->cipher) {
|
||||
case WLAN_CIPHER_SUITE_TKIP:
|
||||
@@ -6902,7 +7076,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6903,7 +7077,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
if ((vif->type == NL80211_IFTYPE_AP_VLAN ||
|
||||
vif->type == NL80211_IFTYPE_STATION) && ab->nss.enabled) {
|
||||
if (ath11k_frame_mode == ATH11K_HW_TXRX_ETHERNET &&
|
||||
@ -363,7 +363,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR;
|
||||
arvif->nss.encap = ATH11K_HW_TXRX_ETHERNET;
|
||||
arvif->nss.decap = ATH11K_HW_TXRX_ETHERNET;
|
||||
@@ -6915,6 +7089,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6916,6 +7090,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
vif->addr, ret);
|
||||
goto err;
|
||||
}
|
||||
@ -371,7 +371,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
return ret;
|
||||
}
|
||||
@@ -6940,6 +7115,20 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6941,6 +7116,20 @@ static int ath11k_mac_op_add_interface(s
|
||||
arvif->vdev_id = bit;
|
||||
arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE;
|
||||
|
||||
@ -392,7 +392,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
switch (vif->type) {
|
||||
case NL80211_IFTYPE_UNSPECIFIED:
|
||||
case NL80211_IFTYPE_STATION:
|
||||
@@ -6989,7 +7178,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6990,7 +7179,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
if (ret) {
|
||||
ath11k_warn(ab, "failed to create WMI vdev %d: %d\n",
|
||||
arvif->vdev_id, ret);
|
||||
@ -401,7 +401,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
}
|
||||
|
||||
ar->num_created_vdevs++;
|
||||
@@ -7154,7 +7343,7 @@ err_peer_del:
|
||||
@@ -7155,7 +7344,7 @@ err_peer_del:
|
||||
if (fbret) {
|
||||
ath11k_warn(ar->ab, "fallback fail to delete peer addr %pM vdev_id %d ret %d\n",
|
||||
vif->addr, arvif->vdev_id, fbret);
|
||||
@ -410,7 +410,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7165,6 +7354,8 @@ err_vdev_del:
|
||||
@@ -7166,6 +7355,8 @@ err_vdev_del:
|
||||
list_del(&arvif->list);
|
||||
spin_unlock_bh(&ar->data_lock);
|
||||
|
||||
@ -419,7 +419,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
err:
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
|
||||
@@ -7263,6 +7454,7 @@ err_vdev_del:
|
||||
@@ -7264,6 +7455,7 @@ err_vdev_del:
|
||||
list_del(&arvif->list);
|
||||
spin_unlock_bh(&ar->data_lock);
|
||||
|
||||
@ -427,7 +427,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
ath11k_peer_cleanup(ar, arvif->vdev_id);
|
||||
|
||||
idr_for_each(&ar->txmgmt_idr,
|
||||
@@ -9887,6 +10079,33 @@ static int ath11k_mac_station_remove(str
|
||||
@@ -9888,6 +10080,33 @@ static int ath11k_mac_station_remove(str
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -461,7 +461,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta,
|
||||
@@ -9976,6 +10195,34 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -9977,6 +10196,34 @@ static int ath11k_mac_op_sta_state(struc
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "Unable to authorize peer %pM vdev %d: %d\n",
|
||||
sta->addr, arvif->vdev_id, ret);
|
||||
@ -496,7 +496,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
}
|
||||
|
||||
if (!ret &&
|
||||
@@ -10590,8 +10837,11 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10591,8 +10838,11 @@ static int __ath11k_mac_register(struct
|
||||
ab->hw_params.bios_sar_capa)
|
||||
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;
|
||||
|
||||
|
@ -425,7 +425,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
bool (*rx_desc_get_mpdu_fc_valid)(struct hal_rx_desc *desc);
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -10249,6 +10249,14 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10250,6 +10250,14 @@ static int ath11k_mac_op_sta_state(struc
|
||||
}
|
||||
} else if (old_state == IEEE80211_STA_AUTHORIZED &&
|
||||
new_state == IEEE80211_STA_ASSOC) {
|
||||
|
@ -430,7 +430,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -6487,12 +6487,22 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
@@ -6488,12 +6488,22 @@ static void ath11k_mac_op_tx(struct ieee
|
||||
if (control->sta)
|
||||
arsta = ath11k_sta_to_arsta(control->sta);
|
||||
|
||||
@ -454,7 +454,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
ieee80211_free_txskb(ar->hw, skb);
|
||||
return;
|
||||
}
|
||||
@@ -7460,7 +7470,7 @@ err_vdev_del:
|
||||
@@ -7461,7 +7471,7 @@ err_vdev_del:
|
||||
idr_for_each(&ar->txmgmt_idr,
|
||||
ath11k_mac_vif_txmgmt_idr_remove, vif);
|
||||
|
||||
|
@ -1257,7 +1257,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
}
|
||||
|
||||
@@ -10289,6 +10301,28 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10290,6 +10302,28 @@ static int ath11k_mac_op_sta_state(struc
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -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,
|
||||
@@ -10347,6 +10381,9 @@ static const struct ieee80211_ops ath11k
|
||||
@@ -10348,6 +10382,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,
|
||||
@@ -10859,6 +10896,8 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10860,6 +10897,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);
|
||||
|
@ -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
|
||||
@@ -7479,8 +7479,10 @@ err_vdev_del:
|
||||
@@ -7480,8 +7480,10 @@ err_vdev_del:
|
||||
kfree(arvif->vlan_keyid_map);
|
||||
ath11k_peer_cleanup(ar, arvif->vdev_id);
|
||||
|
||||
|
@ -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
|
||||
@@ -10782,6 +10782,8 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10783,6 +10783,8 @@ static int __ath11k_mac_register(struct
|
||||
ieee80211_hw_set(ar->hw, USES_RSS);
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -10201,6 +10195,17 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10202,6 +10196,17 @@ static int ath11k_mac_op_sta_state(struc
|
||||
arsta->bw = ath11k_mac_ieee80211_sta_bw_to_wmi(ar, sta);
|
||||
arsta->bw_prev = arsta->bw;
|
||||
spin_unlock_bh(&ar->data_lock);
|
||||
|
@ -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
|
||||
@@ -6596,7 +6596,9 @@ static int ath11k_mac_op_start(struct ie
|
||||
@@ -6597,7 +6597,9 @@ static int ath11k_mac_op_start(struct ie
|
||||
break;
|
||||
case ATH11K_STATE_RESTARTING:
|
||||
ar->state = ATH11K_STATE_RESTARTED;
|
||||
|
@ -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
|
||||
@@ -8703,6 +8703,8 @@ static int ath11k_mac_flush_tx_complete(
|
||||
@@ -8704,6 +8704,8 @@ static int ath11k_mac_flush_tx_complete(
|
||||
ret = -ETIMEDOUT;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
@@ -10773,6 +10773,7 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10774,6 +10774,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);
|
||||
|
@ -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
|
||||
@@ -10379,7 +10379,7 @@ static const struct ieee80211_ops ath11k
|
||||
@@ -10380,7 +10380,7 @@ static const struct ieee80211_ops ath11k
|
||||
.set_wakeup = ath11k_wow_op_set_wakeup,
|
||||
#endif
|
||||
|
||||
|
@ -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
|
||||
@@ -6538,6 +6538,7 @@ static int ath11k_mac_config_mon_status_
|
||||
@@ -6539,6 +6539,7 @@ static int ath11k_mac_config_mon_status_
|
||||
tlv_filter.rx_filter = ath11k_debugfs_rx_filter(ar);
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@
|
||||
struct wmi_delba_send_cmd {
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -6707,6 +6707,9 @@ static int ath11k_mac_op_start(struct ie
|
||||
@@ -6708,6 +6708,9 @@ static int ath11k_mac_op_start(struct ie
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -776,7 +776,7 @@
|
||||
if (!wds_peer) {
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
ath11k_warn(ab, "mac sta use 4addr failed to find peer %pM\n",
|
||||
@@ -5459,7 +5459,7 @@ static void ath11k_mac_op_sta_rc_update(
|
||||
@@ -5460,7 +5460,7 @@ static void ath11k_mac_op_sta_rc_update(
|
||||
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@ -785,7 +785,7 @@
|
||||
if (!peer) {
|
||||
spin_unlock_bh(&ar->ab->base_lock);
|
||||
ath11k_warn(ar->ab, "mac sta rc update failed to find peer %pM on vdev %i\n",
|
||||
@@ -8499,7 +8499,7 @@ ath11k_mac_op_assign_vif_chanctx(struct
|
||||
@@ -8500,7 +8500,7 @@ ath11k_mac_op_assign_vif_chanctx(struct
|
||||
if (ab->hw_params.vdev_start_delay &&
|
||||
arvif->vdev_type != WMI_VDEV_TYPE_AP &&
|
||||
arvif->vdev_type != WMI_VDEV_TYPE_MONITOR &&
|
||||
@ -794,7 +794,7 @@
|
||||
memcpy(&arvif->chanctx, ctx, sizeof(*ctx));
|
||||
ret = 0;
|
||||
goto out;
|
||||
@@ -8575,7 +8575,7 @@ ath11k_mac_op_unassign_vif_chanctx(struc
|
||||
@@ -8576,7 +8576,7 @@ ath11k_mac_op_unassign_vif_chanctx(struc
|
||||
if (ab->hw_params.vdev_start_delay &&
|
||||
arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@ -803,7 +803,7 @@
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
if (peer)
|
||||
ath11k_peer_delete(ar, arvif->vdev_id, ar->mac_addr);
|
||||
@@ -9149,7 +9149,7 @@ ath11k_mac_validate_vht_he_fixed_rate_se
|
||||
@@ -9150,7 +9150,7 @@ ath11k_mac_validate_vht_he_fixed_rate_se
|
||||
|
||||
rcu_read_lock();
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
@ -812,7 +812,7 @@
|
||||
if (peer->sta) {
|
||||
deflink = &peer->sta->deflink;
|
||||
|
||||
@@ -10105,26 +10105,26 @@ static int ath11k_mac_station_remove(str
|
||||
@@ -10106,26 +10106,26 @@ static int ath11k_mac_station_remove(str
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -846,7 +846,7 @@
|
||||
sta->addr, ret);
|
||||
return ret;
|
||||
}
|
||||
@@ -10174,20 +10174,20 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10175,20 +10175,20 @@ static int ath11k_mac_op_sta_state(struc
|
||||
ath11k_warn(ar->ab, "Failed to remove station: %pM for VDEV: %d\n",
|
||||
sta->addr, arvif->vdev_id);
|
||||
|
||||
@ -871,7 +871,7 @@
|
||||
} else if (old_state == IEEE80211_STA_AUTH &&
|
||||
new_state == IEEE80211_STA_ASSOC &&
|
||||
(vif->type == NL80211_IFTYPE_AP ||
|
||||
@@ -10218,7 +10218,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10219,7 +10219,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
new_state == IEEE80211_STA_AUTHORIZED) {
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@ -880,7 +880,7 @@
|
||||
if (peer)
|
||||
peer->is_authorized = true;
|
||||
|
||||
@@ -10255,7 +10255,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10256,7 +10256,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
list_add_tail(&ar_dyn_vlan_cfg->cfg_list, &arvif->dyn_vlan_cfg);
|
||||
}
|
||||
} else {
|
||||
@ -889,7 +889,7 @@
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "failed to cfg dyn vlan for peer %pM: %d\n",
|
||||
sta->addr, ret);
|
||||
@@ -10288,7 +10288,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10289,7 +10289,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
new_state == IEEE80211_STA_ASSOC) {
|
||||
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
@ -898,7 +898,7 @@
|
||||
if (peer)
|
||||
peer->is_authorized = false;
|
||||
spin_unlock_bh(&ar->ab->base_lock);
|
||||
@@ -10296,7 +10296,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10297,7 +10297,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
new_state == IEEE80211_STA_ASSOC) {
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@ -907,7 +907,7 @@
|
||||
if (peer)
|
||||
peer->is_authorized = false;
|
||||
|
||||
@@ -10704,9 +10704,9 @@ void ath11k_mac_unregister(struct ath11k
|
||||
@@ -10705,9 +10705,9 @@ void ath11k_mac_unregister(struct ath11k
|
||||
continue;
|
||||
|
||||
__ath11k_mac_unregister(ar);
|
||||
@ -918,7 +918,7 @@
|
||||
}
|
||||
|
||||
static int __ath11k_mac_register(struct ath11k *ar)
|
||||
@@ -10990,15 +10990,15 @@ int ath11k_mac_register(struct ath11k_ba
|
||||
@@ -10991,15 +10991,15 @@ int ath11k_mac_register(struct ath11k_ba
|
||||
ab->cc_freq_hz = IPQ8074_CC_FREQ_HERTZ;
|
||||
ab->free_vdev_map = (1LL << (ab->num_radios * TARGET_NUM_VDEVS(ab))) - 1;
|
||||
|
||||
@ -937,7 +937,7 @@
|
||||
if (ab->pdevs_macaddr_valid) {
|
||||
ether_addr_copy(ar->mac_addr, pdev->mac_addr);
|
||||
} else {
|
||||
@@ -11026,9 +11026,9 @@ err_cleanup:
|
||||
@@ -11027,9 +11027,9 @@ err_cleanup:
|
||||
pdev = &ab->pdevs[i];
|
||||
ar = pdev->ar;
|
||||
__ath11k_mac_unregister(ar);
|
||||
@ -948,7 +948,7 @@
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -11072,9 +11072,12 @@ int ath11k_mac_allocate(struct ath11k_ba
|
||||
@@ -11073,9 +11073,12 @@ int ath11k_mac_allocate(struct ath11k_ba
|
||||
ar->num_rx_chains = get_num_chains(pdev->cap.rx_chain_mask);
|
||||
|
||||
pdev->ar = ar;
|
||||
|
@ -32,7 +32,7 @@
|
||||
{
|
||||
struct ath11k *ar = hw->priv;
|
||||
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
|
||||
@@ -6840,7 +6840,7 @@ static int ath11k_mac_setup_vdev_create_
|
||||
@@ -6841,7 +6841,7 @@ static int ath11k_mac_setup_vdev_create_
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
struct ieee80211_vif *vif)
|
||||
{
|
||||
struct ath11k *ar = hw->priv;
|
||||
@@ -6850,7 +6850,7 @@ static int ath11k_mac_op_update_vif_offl
|
||||
@@ -6851,7 +6851,7 @@ static int ath11k_mac_op_update_vif_offl
|
||||
int ret;
|
||||
|
||||
if (ab->nss.enabled && vif->type == NL80211_IFTYPE_AP_VLAN)
|
||||
@ -50,7 +50,7 @@
|
||||
|
||||
param_id = WMI_VDEV_PARAM_TX_ENCAP_TYPE;
|
||||
if (ath11k_frame_mode != ATH11K_HW_TXRX_ETHERNET ||
|
||||
@@ -6889,8 +6889,6 @@ static int ath11k_mac_op_update_vif_offl
|
||||
@@ -6890,8 +6890,6 @@ static int ath11k_mac_op_update_vif_offl
|
||||
arvif->vdev_id, ret);
|
||||
vif->offload_flags &= ~IEEE80211_OFFLOAD_DECAP_ENABLED;
|
||||
}
|
||||
@ -59,7 +59,7 @@
|
||||
}
|
||||
|
||||
static bool ath11k_mac_vif_ap_active_any(struct ath11k_base *ab)
|
||||
@@ -7221,8 +7219,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -7222,8 +7220,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
goto err_vdev_del;
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
+EXPORT_SYMBOL(ieee80211_update_muedca_params);
|
||||
--- a/net/mac80211/trace.h
|
||||
+++ b/net/mac80211/trace.h
|
||||
@@ -3140,6 +3140,26 @@ TRACE_EVENT(stop_queue,
|
||||
@@ -3143,6 +3143,26 @@ TRACE_EVENT(stop_queue,
|
||||
)
|
||||
);
|
||||
|
||||
|
@ -340,7 +340,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/driver-ops.c
|
||||
+++ b/net/mac80211/driver-ops.c
|
||||
@@ -622,3 +622,23 @@ int drv_change_sta_links(struct ieee8021
|
||||
@@ -623,3 +623,23 @@ int drv_change_sta_links(struct ieee8021
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
|
||||
--- a/src/dnsmasq.c
|
||||
+++ b/src/dnsmasq.c
|
||||
@@ -105,10 +105,6 @@ int main (int argc, char **argv)
|
||||
@@ -107,10 +107,6 @@ int main (int argc, char **argv)
|
||||
|
||||
read_opts(argc, argv, compile_opts);
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
|
||||
--- a/src/dnsmasq.h
|
||||
+++ b/src/dnsmasq.h
|
||||
@@ -1277,7 +1277,7 @@ extern struct daemon {
|
||||
@@ -1281,7 +1281,7 @@ extern struct daemon {
|
||||
int inotifyfd;
|
||||
#endif
|
||||
#if defined(HAVE_LINUX_NETWORK)
|
||||
@ -35,7 +35,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
#elif defined(HAVE_BSD_NETWORK)
|
||||
int dhcp_raw_fd, dhcp_icmp_fd, routefd;
|
||||
#endif
|
||||
@@ -1491,9 +1491,6 @@ int read_write(int fd, unsigned char *pa
|
||||
@@ -1494,9 +1494,6 @@ int read_write(int fd, unsigned char *pa
|
||||
void close_fds(long max_fd, int spare1, int spare2, int spare3);
|
||||
int wildcard_match(const char* wildcard, const char* match);
|
||||
int wildcard_matchn(const char* wildcard, const char* match, int num);
|
||||
@ -140,7 +140,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
my_syslog(LOG_ERR, _("failed to update ipset %s: %s"), setname, strerror(errno));
|
||||
--- a/src/util.c
|
||||
+++ b/src/util.c
|
||||
@@ -866,22 +866,3 @@ int wildcard_matchn(const char* wildcard
|
||||
@@ -901,22 +901,3 @@ int wildcard_matchn(const char* wildcard
|
||||
|
||||
return (!num) || (*wildcard == *match);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/src/dnsmasq.c
|
||||
+++ b/src/dnsmasq.c
|
||||
@@ -2097,6 +2097,10 @@
|
||||
@@ -2097,6 +2097,10 @@ static void do_tcp_connection(struct lis
|
||||
daemon->pipe_to_parent = pipefd[1];
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
Reset that here. */
|
||||
--- a/src/dnsmasq.h
|
||||
+++ b/src/dnsmasq.h
|
||||
@@ -1670,14 +1670,26 @@ void emit_dbus_signal(int action, struct
|
||||
@@ -1690,14 +1690,26 @@ void emit_dbus_signal(int action, struct
|
||||
|
||||
/* ubus.c */
|
||||
#ifdef HAVE_UBUS
|
||||
@ -42,7 +42,7 @@
|
||||
/* ipset.c */
|
||||
--- a/src/forward.c
|
||||
+++ b/src/forward.c
|
||||
@@ -803,7 +803,7 @@ static size_t process_reply(struct dns_h
|
||||
@@ -801,7 +801,7 @@ static size_t process_reply(struct dns_h
|
||||
cache_secure = 0;
|
||||
}
|
||||
|
||||
@ -63,9 +63,9 @@
|
||||
+#include <libubox/blobmsg.h>
|
||||
+#endif
|
||||
|
||||
int extract_name(struct dns_header *header, size_t plen, unsigned char **pp,
|
||||
char *name, int isExtract, int extrabytes)
|
||||
@@ -384,10 +386,65 @@ static int private_net6(struct in6_addr
|
||||
/* EXTR_NAME_EXTRACT -> extract name
|
||||
EXTR_NAME_COMPARE -> compare name, case insensitive
|
||||
@@ -437,10 +439,65 @@ static int private_net6(struct in6_addr
|
||||
((u32 *)a)[0] == htonl(0x20010db8); /* RFC 6303 4.6 */
|
||||
}
|
||||
|
||||
@ -132,7 +132,7 @@
|
||||
int done = 0;
|
||||
|
||||
if (!(p = skip_questions(header, qlen)))
|
||||
@@ -404,7 +461,7 @@ int do_doctor(struct dns_header *header,
|
||||
@@ -457,7 +514,7 @@ int do_doctor(struct dns_header *header,
|
||||
|
||||
GETSHORT(qtype, p);
|
||||
GETSHORT(qclass, p);
|
||||
@ -141,7 +141,7 @@
|
||||
GETSHORT(rdlen, p);
|
||||
|
||||
if (qclass == C_IN && qtype == T_A)
|
||||
@@ -415,6 +472,9 @@ int do_doctor(struct dns_header *header,
|
||||
@@ -468,6 +525,9 @@ int do_doctor(struct dns_header *header,
|
||||
if (!CHECK_LEN(header, p, qlen, INADDRSZ))
|
||||
return done;
|
||||
|
||||
@ -151,7 +151,7 @@
|
||||
/* alignment */
|
||||
memcpy(&addr.addr4, p, INADDRSZ);
|
||||
|
||||
@@ -444,6 +504,14 @@ int do_doctor(struct dns_header *header,
|
||||
@@ -497,6 +557,14 @@ int do_doctor(struct dns_header *header,
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ Subject: [PATCH] add support for dropping with FAILED_POLICY
|
||||
if (!end || end == arg || *end || res > 255)
|
||||
--- a/include/uapi/linux/rtnetlink.h
|
||||
+++ b/include/uapi/linux/rtnetlink.h
|
||||
@@ -265,6 +265,7 @@ enum {
|
||||
@@ -273,6 +273,7 @@ enum {
|
||||
RTN_THROW, /* Not in this table */
|
||||
RTN_NAT, /* Translate this address */
|
||||
RTN_XRESOLVE, /* Use external resolver */
|
||||
|
@ -663,7 +663,7 @@
|
||||
static inline const void *choose_neigh_daddr(const struct in6_addr *p,
|
||||
struct sk_buff *skb,
|
||||
const void *daddr)
|
||||
@@ -3876,6 +3879,10 @@ int ip6_route_add(struct fib6_config *cf
|
||||
@@ -3910,6 +3913,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;
|
||||
@@ -3897,6 +3904,9 @@ static int __ip6_del_rt(struct fib6_info
|
||||
@@ -3931,6 +3938,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;
|
||||
@@ -6359,6 +6369,20 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6393,6 +6403,20 @@ static int ip6_route_dev_notify(struct n
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
||||
|
||||
--- a/net/ipv6/route.c
|
||||
+++ b/net/ipv6/route.c
|
||||
@@ -3879,10 +3879,6 @@ int ip6_route_add(struct fib6_config *cf
|
||||
@@ -3913,10 +3913,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;
|
||||
@@ -3904,9 +3900,6 @@ static int __ip6_del_rt(struct fib6_info
|
||||
@@ -3938,9 +3934,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;
|
||||
@@ -4515,6 +4508,10 @@ int ipv6_route_ioctl(struct net *net, un
|
||||
@@ -4549,6 +4542,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;
|
||||
}
|
||||
|
||||
@@ -5537,11 +5534,17 @@ static int inet6_rtm_delroute(struct sk_
|
||||
@@ -5571,11 +5568,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,
|
||||
@@ -5558,9 +5561,15 @@ static int inet6_rtm_newroute(struct sk_
|
||||
@@ -5592,9 +5595,15 @@ static int inet6_rtm_newroute(struct sk_
|
||||
cfg.fc_metric = IP6_RT_PRIO_USER;
|
||||
|
||||
if (cfg.fc_mp)
|
||||
|
Loading…
x
Reference in New Issue
Block a user