mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-17 19:30:11 -05:00
wifi: ath12k: refactor arvif security parameter configuration
Configure security parameters in a separate function to make it easier to support setting the same for nontransmitted profiles. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://msgid.link/20240508202912.11902-7-quic_alokad@quicinc.com
This commit is contained in:
@@ -1299,6 +1299,26 @@ static int ath12k_mac_remove_vendor_ie(struct sk_buff *skb, unsigned int oui,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ath12k_mac_set_arvif_ies(struct ath12k_vif *arvif, struct sk_buff *bcn)
|
||||
{
|
||||
struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)bcn->data;
|
||||
const u8 *start, *tail;
|
||||
u16 rem_len;
|
||||
|
||||
start = bcn->data + ieee80211_get_hdrlen_from_skb(bcn) + sizeof(mgmt->u.beacon);
|
||||
tail = skb_tail_pointer(bcn);
|
||||
rem_len = tail - start;
|
||||
|
||||
arvif->rsnie_present = false;
|
||||
arvif->wpaie_present = false;
|
||||
|
||||
if (cfg80211_find_ie(WLAN_EID_RSN, start, rem_len))
|
||||
arvif->rsnie_present = true;
|
||||
if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT, WLAN_OUI_TYPE_MICROSOFT_WPA,
|
||||
start, rem_len))
|
||||
arvif->wpaie_present = true;
|
||||
}
|
||||
|
||||
static int ath12k_mac_setup_bcn_tmpl(struct ath12k_vif *arvif)
|
||||
{
|
||||
struct ath12k *ar = arvif->ar;
|
||||
@@ -1307,8 +1327,6 @@ static int ath12k_mac_setup_bcn_tmpl(struct ath12k_vif *arvif)
|
||||
struct ieee80211_vif *vif = arvif->vif;
|
||||
struct ieee80211_mutable_offsets offs = {};
|
||||
struct sk_buff *bcn;
|
||||
struct ieee80211_mgmt *mgmt;
|
||||
u8 *ies;
|
||||
int ret;
|
||||
|
||||
if (arvif->vdev_type != WMI_VDEV_TYPE_AP)
|
||||
@@ -1320,16 +1338,7 @@ static int ath12k_mac_setup_bcn_tmpl(struct ath12k_vif *arvif)
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
ies = bcn->data + ieee80211_get_hdrlen_from_skb(bcn);
|
||||
ies += sizeof(mgmt->u.beacon);
|
||||
|
||||
if (cfg80211_find_ie(WLAN_EID_RSN, ies, (skb_tail_pointer(bcn) - ies)))
|
||||
arvif->rsnie_present = true;
|
||||
|
||||
if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
|
||||
WLAN_OUI_TYPE_MICROSOFT_WPA,
|
||||
ies, (skb_tail_pointer(bcn) - ies)))
|
||||
arvif->wpaie_present = true;
|
||||
ath12k_mac_set_arvif_ies(arvif, bcn);
|
||||
|
||||
if (arvif->vif->type == NL80211_IFTYPE_AP && arvif->vif->p2p) {
|
||||
ret = ath12k_mac_setup_bcn_p2p_ie(arvif, bcn);
|
||||
|
||||
Reference in New Issue
Block a user