Thread (1 message) 1 message, 1 author, 2021-08-31

Re: [PATCH] Revert "wcn36xx: Enable firmware link monitoring"

From: Kalle Valo <hidden>
Date: 2021-08-31 06:46:52
Also in: stable

Loic Poulain [off-list ref] writes:
Hi Bryan,

On Tue, 31 Aug 2021 at 03:13, Bryan O'Donoghue [off-list ref] wrote:

 On 30/08/2021 18:09, Loic Poulain wrote:
 > This reverts commit 8def9ec46a5fafc0abcf34489a9e8a787bca984d.
 > 
 > The firmware keep-alive does not cause any event in case of error
 > such as non acked. It's just a basic keep alive to prevent the AP
 > to kick-off the station due to inactivity. So let mac80211 submit
 > its own monitoring packet (probe/null) and disconnect on timeout.
 > 
 > Note: We want to keep firmware keep alive to prevent kick-off
 > when host is in suspend-to-mem (no mac80211 monitor packet).
 > Ideally fw keep alive should be enabled in suspend path and disabled
 > in resume path to prevent having both firmware and mac80211 submitting
 > periodic null packets.
 > 
 > This fixes non detected AP leaving issues in active mode (nothing
 > monitors beacon or connection).
 > 
 > Cc: stable@vger.kernel.org
 > Fixes: 8def9ec46a5f ("wcn36xx: Enable firmware link monitoring")
 > Signed-off-by: Loic Poulain [off-list ref]
 > ---
 >   drivers/net/wireless/ath/wcn36xx/main.c | 1 -
 >   1 file changed, 1 deletion(-)
 > 
 > diff --git a/drivers/net/wireless/ath/wcn36xx/main.c
 b/drivers/net/wireless/ath/wcn36xx/main.c
 > index 216bc34..128d25d 100644
 > --- a/drivers/net/wireless/ath/wcn36xx/main.c
 > +++ b/drivers/net/wireless/ath/wcn36xx/main.c
 > @@ -1362,7 +1362,6 @@ static int wcn36xx_init_ieee80211(struct wcn36xx *wcn)
 >       ieee80211_hw_set(wcn->hw, HAS_RATE_CONTROL);
 >       ieee80211_hw_set(wcn->hw, SINGLE_SCAN_ON_ALL_BANDS);
 >       ieee80211_hw_set(wcn->hw, REPORTS_TX_ACK_STATUS);
 > -     ieee80211_hw_set(wcn->hw, CONNECTION_MONITOR);
 >   
 >       wcn->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
 >               BIT(NL80211_IFTYPE_AP) |
 > 

 But why is BSS heartbeat offload not running, it should be.

 I agree we should switch this bit off for now since its obviously not 
 working as intended.

 But we need to root cause _why_

I think it has just not be designed as a connection tracking mechanism but as a simple
keep alive, which is submitted every 30s unconditionally.

 In suspend absent a working heartbeat monitor - if the AP goes away we 
 stay in suspend indefinitely.

We shouldn't because the firmware is monitoring beacons and would cause a beacon miss
indication, waking up the host.
No HTML please, our lists drop emails using HTML.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help