* [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