███╗ ███╗████████╗███████╗ █████╗ ██████╗ ███████╗
████╗ ████║╚══██╔══╝╚════██║██╔══██╗╚════██╗██╔════╝
██╔████╔██║ ██║ ██╔╝╚██████║ █████╔╝███████╗
██║╚██╔╝██║ ██║ ██╔╝ ╚═══██║██╔═══╝ ╚════██║
██║ ╚═╝ ██║ ██║ ██║ █████╔╝███████╗███████║
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚════╝ ╚══════╝╚══════╝
Fixes for kernel panics, deadlocks, and system hangs on MT7921/MT7925 WiFi cards
📚 Documentation · 🚀 Quick Start · 📦 Releases · 🐛 Report Issue
The MediaTek MT7921 and MT7925 WiFi drivers in stock Linux 6.8–6.19 kernels have several bugs that cause:
- Kernel panics (NULL pointer dereferences)
- System hangs (mutex deadlocks, processes stuck in D state)
- WiFi drops during network switching or suspend/resume
These issues are especially bad on WiFi 6E/7 setups with fast roaming, 6 GHz bands, or MLO enabled—often crashing every few minutes on affected hardware laptops and desktops
Hopefully these patches get integrated upstream soon and this project is no longer needed. Until then...
git clone https://github.com/zbowling/mt7925.git
cd mt7925/dkms
sudo ./install.sh# yay
yay -S mt76-mt7925-dkms
# paru
paru -S mt76-mt7925-dkms# Add repository
curl -1sLf 'https://dl.cloudsmith.io/public/mt76/packages/setup.deb.sh' | sudo -E bash
# Install
sudo apt update && sudo apt install mt76-mt7925-dkms# Add repository
curl -1sLf 'https://dl.cloudsmith.io/public/mt76/packages/setup.rpm.sh' | sudo -E bash
# Install
sudo dnf install mt76-mt7925-dkmsRequires kernel 6.17+ — For older kernels, see patch installation.
| Component | Version | Description |
|---|---|---|
| DKMS Package | v1.5.0 | Drop-in replacement for stock mt76 modules |
| Patch Series | v7 (7 patches) | For manual kernel patching |
| Documentation | Website | Architecture, debugging, crash analysis |
7 patches targeting critical MLO stability bugs:
| # | Patch |
|---|---|
| 1 | Fix double wcid initialization race condition |
| 2 | Add NULL pointer protection for MLO operations |
| 3 | Add mutex protection in critical paths |
| 4 | Add MCU command error handling in AMPDU actions |
| 5 | Add lockdep assertions for mutex verification |
| 6 | Fix MLO ROC setup error handling |
| 7 | Add error logging for MLO ROC in set_links |
The DKMS package includes additional features beyond the upstream patches:
- RSSI Monitor: CQM threshold notifications via firmware events
- CSA Support: Handle AP-initiated channel switches
- Debug Features: Optional verbose logging (compile-time flag)
See full patch list for details.
- MT7925 — WiFi 7 (802.11be) PCIe
- MT7921 — WiFi 6E (802.11ax) PCIe/USB/SDIO
- Framework Desktop (AMD Ryzen AI Max 300)
- Framework Laptop 13/16 with MT7925
- Lenovo, Dell, ASUS, Acer laptops with MT7921/MT7925
| Kernel | Status |
|---|---|
| 6.18.x | ✅ Recommended |
| 6.19-rc | ✅ Supported |
| 6.17.x | ✅ Supported (EOL) |
| < 6.17 |
Full documentation available at zbowling.github.io/mt7925
Patches are being submitted upstream to:
- linux-wireless mailing list
- nbd168/wireless staging tree
- OpenWRT mt76
Track progress: Upstream Status
ISC AND GPL-2.0-only (dual licensed, same as upstream mt76)