Search Linux Wireless

Re: [Stable Regression Bisected] Linux 6.13.2 breaks mt7925e

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 12, 2025 at 9:50 PM Caleb Jorden <cjorden@xxxxxxxxx> wrote:
>
> On Wed, Feb 12, 2025 at 9:43 PM Mingyen Hsieh (謝明諺)
> <Mingyen.Hsieh@xxxxxxxxxxxx> wrote:
> >
> > On Wed, 2025-02-12 at 21:16 -0600, Caleb Jorden wrote:
> > >
> > > External email : Please do not click links or open attachments until
> > > you have verified the sender or the content.
> > >
> > >
> > > Hello Kernel team,
> > >
> > > I discovered that the 6.13.2 kernel breaks my laptop's wireless.
> > > Here
> > > are the details of my system:
> > >
> > > - Framework 13 (AMD Ryzen 7840)
> > > - mt7925e wireless card (purchased from:
> > > https://urldefense.com/v3/__https://www.amazon.com/dp/B0DP68GV9V__;!!
> > > CTRNKA9wMg0ARbw!nB_7DXY8l5AYSvgN3AMFpJZOJVng1dxSh_2yZLKT8S8DkDEwjaGvl
> > > cmALUeik84J7ePLJnvOe-2oNQ7dxCM$ )
> > > - Arch Linux, using IWD (3.3) to manage Wireless network connectivity
> > >
> > > When running the 6.13.0 and 6.13.1 kernels (from Arch), the wireless
> > > adapter worked very well.  I was able to associate to my Wifi 7
> > > network (Ubiquiti U7 Pros) and operate in the 6GHz spectrum with
> > > 160MHz channels.  I also have an older wireless network that runs on
> > > Google Nest routers.
> > >
> > > When I upgraded to the 6.13.2 kernel from Arch Linux, my wireless
> > > suddenly stopped working.  I looked at the kernel logs and saw these
> > > messages (wireless addresses changed to make clearer the different
> > > points):
> > >
> > > [   10.007185] wlan0: authenticate with 28:80:xx:yy:zz:6e (local
> > > address=40:1a:58:aa:bb:cc)
> > > [   10.376446] wlan0: send auth to 28:80:xx:yy:zz:6e (try 1/3)
> > > [   10.384610] wlan0: 28:80:xx:yy:zz:6e denied authentication (status
> > > 77)
> > > [   10.483900] wlan0: authenticate with 28:80:xx:yy:zz:6e (local
> > > address=40:1a:58:aa:bb:cc)
> > > [   10.490138] wlan0: send auth to 28:80:xx:yy:zz:6e (try 1/3)
> > > [   10.507531] wlan0: send auth to 28:80:xx:yy:zz:6e (try 2/3)
> > > [   10.525580] wlan0: send auth to 28:80:xx:yy:zz:6e (try 3/3)
> > > [   10.543048] wlan0: authentication with 28:80:xx:yy:zz:6e timed out
> > > [   10.619423] wlan0: authenticate with 28:80:aa:bb:cc:e1 (local
> > > address=40:1a:58:aa:bb:cc)
> > > [   10.749880] wlan0: send auth to 28:80:aa:bb:cc:e1 (try 1/3)
> > > [   10.768530] wlan0: send auth to 28:80:aa:bb:cc:e1 (try 2/3)
> > > [   10.786954] wlan0: send auth to 28:80:aa:bb:cc:e1 (try 3/3)
> > > [   10.805792] wlan0: authentication with 28:80:aa:bb:cc:e1 timed out
> > > [   10.881620] wlan0: authenticate with 28:80:ee:ff:gg:6d (local
> > > address=40:1a:58:aa:bb:cc)
> > > [   11.016891] wlan0: send auth to 28:80:ee:ff:gg:6d (try 1/3)
> > > [   11.033622] wlan0: send auth to 28:80:ee:ff:gg:6d (try 2/3)
> > > [   11.050574] wlan0: send auth to 28:80:ee:ff:gg:6d (try 3/3)
> > > [   11.065250] wlan0: authentication with 28:80:ee:ff:gg:6d timed out
> > > [   11.139745] wlan0: authenticate with 2a:80:hh:ii:jj:6f (local
> > > address=40:1a:58:aa:bb:cc)
> > > [   11.506205] wlan0: send auth to 2a:80:hh:ii:jj:6f (try 1/3)
> > > [   11.528071] wlan0: send auth to 2a:80:hh:ii:jj:6f (try 2/3)
> > > [   11.550043] wlan0: send auth to 2a:80:hh:ii:jj:6f (try 3/3)
> > > [   11.572005] wlan0: authentication with 2a:80:hh:ii:jj:6f timed out
> > > [   16.312942] wlan0: authenticate with 2a:80:kk:ll:mm:e3 (local
> > > address=40:1a:58:aa:bb:cc)
> > > [   16.675865] wlan0: send auth to 2a:80:kk:ll:mm:e3 (try 1/3)
> > > [   16.702328] wlan0: send auth to 2a:80:kk:ll:mm:e3 (try 2/3)
> > > [   16.726162] wlan0: send auth to 2a:80:kk:ll:mm:e3 (try 3/3)
> > > [   16.748958] wlan0: authentication with 2a:80:kk:ll:mm:e3 timed out
> > > [   16.829874] wlan0: authenticate with 2a:80:nn:oo:pp:e2 (local
> > > address=40:1a:58:aa:bb:cc)
> > > [   17.196579] wlan0: send auth to 2a:80:nn:oo:pp:e2 (try 1/3)
> > > [   17.214256] wlan0: send auth to 2a:80:nn:oo:pp:e2 (try 2/3)
> > > [   17.231852] wlan0: send auth to 2a:80:nn:oo:pp:e2 (try 3/3)
> > > [   17.250116] wlan0: authentication with 2a:80:nn:oo:pp:e2 timed out
> > >
> > > Then IWD seems to have stopped attempting to associate for some time.
> > > My wireless interface showed link down, and I had no IP address.  I
> > > attempted to associate to my older Google Nest network, but that also
> > > failed with the same behavior (thus showing the problem not to be
> > > Wifi
> > > 7 or Ubiquiti-specific).
> > >
> > > I compiled up the mainline 6.13.2 kernel myself and saw the same
> > > behavior.
> > >
> > > I then went back to the Arch 6.13.1 kernel, and the system operated
> > > perfectly fine as expected.
> > >
> > > I bisected the break to this commit:
> > >
> > > $ git bisect good
> > > c76fba3b07c7fb841c4f8f2acc0f01ff3cf73674 is the first bad commit
> > > commit c76fba3b07c7fb841c4f8f2acc0f01ff3cf73674
> > > Author: Ming Yen Hsieh <mingyen.hsieh@xxxxxxxxxxxx>
> > > Date:   Tue Dec 10 17:19:25 2024 -0800
> > >
> > >     wifi: mt76: mt7925: Cleanup MLO settings post-disconnection
> > >
> > >     [ Upstream commit 816161051a039eeb1226fc85e2b38389f508906c ]
> > >
> > >     Clean up MLO settings after disconnection.
> > >
> > >     Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the
> > > firmware supports it")
> > >     Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@xxxxxxxxxxxx>
> > >     Signed-off-by: Sean Wang <sean.wang@xxxxxxxxxxxx>
> > >     Link:
> > > https://urldefense.com/v3/__https://patch.msgid.link/20241211011926.5
> > > 002-16-
> > > sean.wang@kernel.org__;!!CTRNKA9wMg0ARbw!nB_7DXY8l5AYSvgN3AMFpJZOJVng
> > > 1dxSh_2yZLKT8S8DkDEwjaGvlcmALUeik84J7ePLJnvOe-2okec0mTc$
> > >     Signed-off-by: Felix Fietkau <nbd@xxxxxxxx>
> > >     Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> > >
> > >  drivers/net/wireless/mediatek/mt76/mt7925/main.c | 37
> > > +++++++++++++++++++++++++++++++++++--
> > >  drivers/net/wireless/mediatek/mt76/mt7925/mcu.c  |  4 ++--
> > >  drivers/net/wireless/mediatek/mt76/mt7925/mcu.h  |  2 +-
> > >  3 files changed, 38 insertions(+), 5 deletions(-)
> > >
> > > I attempted to revert this commit on top of 6.13.2, but there are
> > > other commits that modify these files, so it can not be reverted by
> > > itself.  I looked at the commit, and a thought occurred to me that
> > > maybe wpa_supplicant might still function even though iwd did not.
> > >
> > > I set up wpa_supplicant, and found that I was able to associate and
> > > pass network traffic.  HOWEVER, when running a simple iperf3 test,
> > > saw
> > > very slow speeds while associated (about 10 times slower than seen
> > > with the 6.13.1 kernel).  Thus, I think this is quite clearly a
> > > regression.  My guess is that this wireless adapter is new enough
> > > that
> > > many people have yet to hit this.
> > >
> > > Here are the details of the card:
> > > # dmesg | grep mt79:
> > > [   12.617246] mt7925e 0000:01:00.0: enabling device (0000 -> 0002)
> > > [   12.622426] mt7925e 0000:01:00.0: ASIC revision: 79250000
> > > [   12.698681] mt7925e 0000:01:00.0: HW/SW Version: 0x8a108a10, Build
> > > Time: 20241104132949a
> > > [   13.047884] mt7925e 0000:01:00.0: WM Firmware Version: ____000000,
> > > Build Time: 20241104133053
> > >
> > > # lspci -vvv (mediatek device):
> > > 01:00.0 Network controller: MEDIATEK Corp. Device 7925 (rev 01)
> > >     Subsystem: Hewlett-Packard Company Device 8c38
> > >     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> > > ParErr- Stepping- SERR- FastB2B- DisINTx+
> > >     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> > > <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >     Latency: 0, Cache Line Size: 64 bytes
> > >     Interrupt: pin A routed to IRQ 116
> > >     IOMMU group: 12
> > >     Region 0: Memory at 90600000 (64-bit, non-prefetchable) [size=2M]
> > >     Region 2: Memory at 90800000 (64-bit, non-prefetchable)
> > > [size=32K]
> > >     Capabilities: [80] Express (v2) Endpoint, IntMsgNum 0
> > >         DevCap:    MaxPayload 256 bytes, PhantFunc 0, Latency L0s
> > > unlimited, L1 unlimited
> > >             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
> > > SlotPowerLimit 75W TEE-IO-
> > >         DevCtl:    CorrErr- NonFatalErr- FatalErr- UnsupReq-
> > >             RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
> > >             MaxPayload 256 bytes, MaxReadReq 512 bytes
> > >         DevSta:    CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr-
> > > TransPend-
> > >         LnkCap:    Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Exit
> > > Latency L0s <2us, L1 <8us
> > >             ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
> > >         LnkCtl:    ASPM L1 Enabled; RCB 64 bytes, LnkDisable-
> > > CommClk+
> > >             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >         LnkSta:    Speed 5GT/s, Width x1
> > >             TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >         DevCap2: Completion Timeout: Range ABCD, TimeoutDis+
> > > NROPrPrP- LTR+
> > >              10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt+
> > > EETLPPrefix-
> > >              EmergencyPowerReduction Not Supported,
> > > EmergencyPowerReductionInit-
> > >              FRS- TPHComp- ExtTPHComp-
> > >              AtomicOpsCap: 32bit- 64bit- 128bitCAS-
> > >         DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
> > >              AtomicOpsCtl: ReqEn-
> > >              IDOReq- IDOCompl- LTR+ EmergencyPowerReductionReq-
> > >              10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
> > >         LnkCap2: Supported Link Speeds: 2.5-5GT/s, Crosslink-
> > > Retimer-
> > > 2Retimers- DRS-
> > >         LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
> > >              Transmit Margin: Normal Operating Range,
> > > EnterModifiedCompliance- ComplianceSOS-
> > >              Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB
> > > preshoot
> > >         LnkSta2: Current De-emphasis Level: -3.5dB,
> > > EqualizationComplete- EqualizationPhase1-
> > >              EqualizationPhase2- EqualizationPhase3-
> > > LinkEqualizationRequest-
> > >              Retimer- 2Retimers- CrosslinkRes: unsupported
> > >     Capabilities: [e0] MSI: Enable+ Count=1/32 Maskable+ 64bit+
> > >         Address: 00000000fee00000  Data: 0000
> > >         Masking: fffffffe  Pending: 00000000
> > >     Capabilities: [f8] Power Management version 3
> > >         Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> > > PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >         Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> > >     Capabilities: [100 v1] Vendor Specific Information: ID=1556 Rev=1
> > > Len=008 <?>
> > >     Capabilities: [108 v1] Latency Tolerance Reporting
> > >         Max snoop latency: 1048576ns
> > >         Max no snoop latency: 1048576ns
> > >     Capabilities: [110 v1] L1 PM Substates
> > >         L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
> > > L1_PM_Substates+
> > >               PortCommonModeRestoreTime=3us PortTPowerOnTime=52us
> > >         L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
> > >                T_CommonMode=0us LTR1.2_Threshold=166912ns
> > >         L1SubCtl2: T_PwrOn=150us
> > >     Capabilities: [200 v2] Advanced Error Reporting
> > >         UESta:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
> > > RxOF- MalfTLP-
> > >             ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP-
> > > AtomicOpBlocked- TLPBlockedErr-
> > >             PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP-
> > > PCRC_CHECK- TLPXlatBlocked-
> > >         UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
> > > RxOF- MalfTLP-
> > >             ECRC- UnsupReq- ACSViol- UncorrIntErr+ BlockedTLP-
> > > AtomicOpBlocked- TLPBlockedErr-
> > >             PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP-
> > > PCRC_CHECK- TLPXlatBlocked-
> > >         UESvrt:    DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt-
> > > RxOF+ MalfTLP+
> > >             ECRC- UnsupReq- ACSViol- UncorrIntErr+ BlockedTLP-
> > > AtomicOpBlocked- TLPBlockedErr-
> > >             PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP-
> > > PCRC_CHECK- TLPXlatBlocked-
> > >         CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> > > AdvNonFatalErr+ CorrIntErr- HeaderOF-
> > >         CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> > > AdvNonFatalErr+ CorrIntErr+ HeaderOF-
> > >         AERCap:    First Error Pointer: 00, ECRCGenCap- ECRCGenEn-
> > > ECRCChkCap- ECRCChkEn-
> > >             MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
> > >         HeaderLog: 00000000 00000000 00000000 00000000
> > >     Kernel driver in use: mt7925e
> > >     Kernel modules: mt7925e
> > >
> > > On my system, /etc/iwd/main.conf contains:
> > > ------------
> > > [Scan]
> > > DisablePeriodicScan=true
> > >
> > > [General]
> > > EnableNetworkConfiguration=true
> > > Country=US
> > > ------------
> > >
> > > At this point my suggestion is that the v6.13.2 mt7925 changes should
> > > be reverted from the stable series for now, unless a fix can be
> > > quickly found.  I have not yet tested 6.14-rc2, but would be willing
> > > to do so if it would be helpful.
> > >
> > > Note: I am not subscribed to any of these lists, so please CC me if
> > > you want to contact me about this.
> > >
> > > Respectfully submitted,
> > > Caleb Jorden
> > > cjorden@xxxxxxxxx
> >
> > Hi Caleb,
> >
> > Here are some patches are currently ongoing.
> > Could you please apply these patches and try again?
> >
> > https://patchwork.kernel.org/project/linux-wireless/list/?series=925106
> >
> > Thanks~
> >
> > Best Regards,
> > Yen.
> >
>
> Hi Yen,
>
> Thank you for getting back to me so quickly.  However, I can't apply
> these patches to the v6.13.2 kernel.  It appears that these apply
> cleanly to the v6.14-rc2 kernel, but the stable series seems to have
> only a subset of those changes.  Is this what you expect, or am I
> missing something?
>
>
> Respectfully submitted,
> Caleb Jorden
> cjorden@xxxxxxxxx

Hello again,

I decided to test the 6.14-rc2 kernel, and found it is broken just
like the 6.13.2 kernel.

I then tried applying the patches found here:

https://patchwork.kernel.org/project/linux-wireless/list/?series=925106

as suggested by Yen on top of 6.14-rc2, and everything seems to be
working normally again!  Speed seems to be very good (possibly better
than even 6.13.1).

So, I would suggest the 6.14 series pick up that set of patches.

For the stable 6.13.y series, it appears that either these patches
(and any necessary predecessors) need to be applied, or the changes
for the mt7925 driver introduced by 6.13.2 need to be reverted in
order to fix the currently-broken state.

If there is any further checking I can do that would be helpful,
please let me know.

Warm Regards,
Caleb Jorden
cjorden@xxxxxxxxx





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux