ALT Linux kernel packages development
 help / color / mirror / Atom feed
* [d-kernel] [6.12] Бэкпорт двух фиксов mt76/mt7921e (bug #54853, зависание WiFi)
@ 2026-06-10  8:39 Ajrat Makhmutov
  2026-06-10  8:39 ` [d-kernel] [PATCH 1/2] wifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain Ajrat Makhmutov
  2026-06-10  8:39 ` [d-kernel] [PATCH 2/2] wifi: mt76: mt7921: fix a potential scan no APs Ajrat Makhmutov
  0 siblings, 2 replies; 3+ messages in thread
From: Ajrat Makhmutov @ 2026-06-10  8:39 UTC (permalink / raw)
  To: devel-kernel

Коллеги,

Решение для https://bugzilla.altlinux.org/54853 (mt7921e уходит в тихое
зависание после disconnect/reconnect — невозможно подключиться ни к одной
сети, лечится только перезагрузкой модуля ядра или chip_reset): предлагаю
приложить к ядру 6.12 два upstream-фикса (см. патчи в треде).

Баг воспроизводится на 6.12 и отсутствует на 7.1; точного бисекта симптома
в апстриме нет (тред на linux-wireless завершился без указания коммита), но
по сравнению mt76 между 6.12.92 и 7.1 это два релевантных для mt7921e
исправления, которых не хватало в 6.12.y (ни одно не помечено Cc: stable):

  2425dc7beaadc wifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain
  5ed54896b6bd4 wifi: mt76: mt7921: fix a potential scan no APs

 drivers/net/wireless/mediatek/mt76/mt7921/init.c | 7 +++++++
 drivers/net/wireless/mediatek/mt76/mt7921/main.c | 7 ++++---
 2 files changed, 11 insertions(+), 3 deletions(-)

Суть:

  - 5ed54896 сбрасывает granted ROC-канал перед удалением станции
    (mt7921_mac_sta_remove). Иначе прошивка остаётся в неверном состоянии и
    последующий скан не находит сети — ровно наблюдаемый симптом.

  - 2425dc7 не даёт country-IE от точки доступа перепрограммировать
    regulatory/CLC, когда регдомен уже задан пользователем. В провальных
    случаях наблюдали порчу power/regulatory-таблиц прошивки (аномальные
    tmac-значения VHT80/160/HE996). Заодно объясняет, почему баг ловится
    только под NetworkManager (он гонит country-IE при каждой ассоциации).

Оба применяются чисто к 6.12.y, собрано и проверено на железе (Acer Aspire 5
A517-52, ASUS VivoBook S14, Lenovo IdeaPad Slim 5 14AHP9). Параллельно
отправлен запрос на бэкпорт в stable@vger.kernel.org (6.12.y):
https://lore.kernel.org/all/20260610080943.17734-1-rauty@altlinux.org/

Патчи — следом в треде.

--
Айрат Махмутов


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [d-kernel] [PATCH 1/2] wifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain
  2026-06-10  8:39 [d-kernel] [6.12] Бэкпорт двух фиксов mt76/mt7921e (bug #54853, зависание WiFi) Ajrat Makhmutov
@ 2026-06-10  8:39 ` Ajrat Makhmutov
  2026-06-10  8:39 ` [d-kernel] [PATCH 2/2] wifi: mt76: mt7921: fix a potential scan no APs Ajrat Makhmutov
  1 sibling, 0 replies; 3+ messages in thread
From: Ajrat Makhmutov @ 2026-06-10  8:39 UTC (permalink / raw)
  To: devel-kernel

From: Leon Yen <leon.yen@mediatek.com>

Some countries have strict RF restrictions where changing the regulatory
domain dynamically based on the connected AP is not acceptable.
This patch disables Beacon country IE hinting when a valid country code
is set from usersland (e.g., by system using iw or CRDA).

Signed-off-by: Leon Yen <leon.yen@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Tested-by: David Ruth <druth@chromium.org>
Link: https://patch.msgid.link/20240412085357.13756-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 2425dc7beaadc39c2636f97f8bdc22dc3cf88149)
---
 drivers/net/wireless/mediatek/mt76/mt7921/init.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/init.c b/drivers/net/wireless/mediatek/mt76/mt7921/init.c
index 4bd533c4ba9a1..276dfb9c26e0d 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/init.c
@@ -137,6 +137,13 @@ mt7921_regd_notifier(struct wiphy *wiphy,
 	dev->mt76.region = request->dfs_region;
 	dev->country_ie_env = request->country_ie_env;
 
+	if (request->initiator == NL80211_REGDOM_SET_BY_USER) {
+		if (dev->mt76.alpha2[0] == '0' && dev->mt76.alpha2[1] == '0')
+			wiphy->regulatory_flags &= ~REGULATORY_COUNTRY_IE_IGNORE;
+		else
+			wiphy->regulatory_flags |= REGULATORY_COUNTRY_IE_IGNORE;
+	}
+
 	if (pm->suspended)
 		return;
 
-- 
2.50.1



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [d-kernel] [PATCH 2/2] wifi: mt76: mt7921: fix a potential scan no APs
  2026-06-10  8:39 [d-kernel] [6.12] Бэкпорт двух фиксов mt76/mt7921e (bug #54853, зависание WiFi) Ajrat Makhmutov
  2026-06-10  8:39 ` [d-kernel] [PATCH 1/2] wifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain Ajrat Makhmutov
@ 2026-06-10  8:39 ` Ajrat Makhmutov
  1 sibling, 0 replies; 3+ messages in thread
From: Ajrat Makhmutov @ 2026-06-10  8:39 UTC (permalink / raw)
  To: devel-kernel

From: Quan Zhou <quan.zhou@mediatek.com>

In multi-channel scenarios, the granted channel must be aborted before
station remove. Otherwise, the firmware will be put into a wrong state,
resulting in have chance to make subsequence scan no APs.
With this patch, the granted channel will be always aborted before
station remove.

Signed-off-by: Quan Zhou <quan.zhou@mediatek.com>
Reviewed-by: Sean Wang <sean.wang@mediatek.com>
Tested-by: David Ruth <druth@chromium.org>
Reviewed-by: David Ruth <druth@chromium.org>
Link: https://patch.msgid.link/1ac1ae779db86d4012199a24ea2ca74050ed4af6.1721300411.git.quan.zhou@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 5ed54896b6bd444223092cab361b0785932119ab)
---
 drivers/net/wireless/mediatek/mt76/mt7921/main.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
index a93ae4e44f16a..f2fffca868b51 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
@@ -368,9 +368,9 @@ void mt7921_roc_abort_sync(struct mt792x_dev *dev)
 	del_timer_sync(&phy->roc_timer);
 	cancel_work_sync(&phy->roc_work);
 	if (test_and_clear_bit(MT76_STATE_ROC, &phy->mt76->state))
-		ieee80211_iterate_active_interfaces(mt76_hw(dev),
-						    IEEE80211_IFACE_ITER_RESUME_ALL,
-						    mt7921_roc_iter, (void *)phy);
+		ieee80211_iterate_interfaces(mt76_hw(dev),
+					     IEEE80211_IFACE_ITER_RESUME_ALL,
+					     mt7921_roc_iter, (void *)phy);
 }
 EXPORT_SYMBOL_GPL(mt7921_roc_abort_sync);
 
@@ -881,6 +881,7 @@ void mt7921_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
 	struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);
 	struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;
 
+	mt7921_roc_abort_sync(dev);
 	mt76_connac_free_pending_tx_skbs(&dev->pm, &msta->deflink.wcid);
 	mt76_connac_pm_wake(&dev->mphy, &dev->pm);
 
-- 
2.50.1



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-06-10  8:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-10  8:39 [d-kernel] [6.12] Бэкпорт двух фиксов mt76/mt7921e (bug #54853, зависание WiFi) Ajrat Makhmutov
2026-06-10  8:39 ` [d-kernel] [PATCH 1/2] wifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain Ajrat Makhmutov
2026-06-10  8:39 ` [d-kernel] [PATCH 2/2] wifi: mt76: mt7921: fix a potential scan no APs Ajrat Makhmutov

ALT Linux kernel packages development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
		devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
	public-inbox-index devel-kernel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git