lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 129/846] ath11k: reset RSN/WPA present state for open BSS
    Date
    From: Karthikeyan Kathirvel <kathirve@codeaurora.org>

    [ Upstream commit 64bc3aa02ae78b1fcb1b850e0eb1f0622002bfaa ]

    The ath11k driver is caching the information about RSN/WPA IE in the
    configured beacon template. The cached information is used during
    associations to figure out whether 4-way PKT/2-way GTK peer flags need to
    be set or not.

    But the code never cleared the state when no such IE was found. This can
    for example happen when moving from an WPA/RSN to an open setup. The
    (seemingly connected) peer was then not able to communicate over the
    link because the firmware assumed a different (encryption enabled) state
    for the peer.

    Tested-on: IPQ6018 hw1.0 AHB WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1

    Fixes: 01e34233c645 ("ath11k: fix wmi peer flags in peer assoc command")
    Cc: Venkateswara Naralasetty <vnaralas@codeaurora.org>
    Reported-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Karthikeyan Kathirvel <kathirve@codeaurora.org>
    [sven@narfation.org: split into separate patches, clean up commit message]
    Signed-off-by: Sven Eckelmann <sven@narfation.org>

    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20211115100441.33771-2-sven@narfation.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/ath/ath11k/mac.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
    index aac10740f5752..2df60c74809d3 100644
    --- a/drivers/net/wireless/ath/ath11k/mac.c
    +++ b/drivers/net/wireless/ath/ath11k/mac.c
    @@ -767,11 +767,15 @@ static int ath11k_mac_setup_bcn_tmpl(struct ath11k_vif *arvif)

    if (cfg80211_find_ie(WLAN_EID_RSN, ies, (skb_tail_pointer(bcn) - ies)))
    arvif->rsnie_present = true;
    + else
    + arvif->rsnie_present = false;

    if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
    WLAN_OUI_TYPE_MICROSOFT_WPA,
    ies, (skb_tail_pointer(bcn) - ies)))
    arvif->wpaie_present = true;
    + else
    + arvif->wpaie_present = false;

    ret = ath11k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn);

    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-24 23:10    [W:4.020 / U:1.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site