Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Sep 2023 15:28:41 GMT
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: dbf7691999ab - main - LinuxKPI: 802.11: improve lkpi_ic_vap_delete()
Message-ID:  <202309301528.38UFSfLw095042@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=dbf7691999abe501e0ebc0fe4d8d9e97718d3890

commit dbf7691999abe501e0ebc0fe4d8d9e97718d3890
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-30 15:20:53 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-09-30 15:27:05 +0000

    LinuxKPI: 802.11: improve lkpi_ic_vap_delete()
    
    Changing the order of cleanup in lkpi_ic_vap_delete() will avoid
    firmware crashes or a direct panic as observed as ieee80211_vap_detach()
    will do most cleanup for us and get us into the correct state.
    
    The solution is not fully developed yet and one may not be able
    to create a new vap (lkpi_ic_vap_create may fail with error 17)
    afterwards.  It is supposed to be a step towards more stability
    for now.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
    PR:             269842
---
 sys/compat/linuxkpi/common/src/linux_80211.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c
index 229c73732ee4..7565f491606b 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -2473,10 +2473,14 @@ lkpi_ic_vap_delete(struct ieee80211vap *vap)
 	LKPI_80211_LHW_LVIF_LOCK(lhw);
 	TAILQ_REMOVE(&lhw->lvif_head, lvif, lvif_entry);
 	LKPI_80211_LHW_LVIF_UNLOCK(lhw);
-	lkpi_80211_mo_remove_interface(hw, vif);
 
 	ieee80211_ratectl_deinit(vap);
 	ieee80211_vap_detach(vap);
+
+	IMPROVE("clear up other bits in this state");
+
+	lkpi_80211_mo_remove_interface(hw, vif);
+
 	mtx_destroy(&lvif->mtx);
 	free(lvif, M_80211_VAP);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202309301528.38UFSfLw095042>