Greetings!
On my GIGABYTE GA-970-Gaming board (AM3+ board + AMD FX8370 CPU) I got this very annoying problem that onboard ethernet Atheros E2400 (alx) ceases to work when the USB 3.0 controller (VIA VL805/806 chipset) is enabled in BIOS.
In this state alx tries to set up the internet connection but fails constantly. dmesg shows this at startup:
[...] ------------[ cut here ]------------ NETDEV WATCHDOG: enp5s0 (alx): transmit queue 2 timed out WARNING: CPU: 3 PID: 0 at net/sched/sch_generic.c:526 dev_watchdog+0x1a8/0x1b0 Modules linked in: dm_mod input_leds joydev hid_generic usbhid hid snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio evdev led_class radeon snd_hda_codec_hdmi drm_ttm_helper ttm pkcs8_key_parser i2c_algo_bit drm_display_helper sg drm_kms_helper crc32_pclmul snd_hda_intel snd_intel_dspcfg sysimgblt syscopyarea sha512_ssse3 fam15h_power sysfillrect acpi_cpufreq k10temp snd_hda_codec sr_mod it87 sha512_generic aesni_intel libaes crypto_simd cryptd hwmon_vid ohci_pci cdrom hwmon ehci_pci ohci_hcd snd_hwdep i2c_piix4 ehci_hcd snd_hda_core drm xhci_pci snd_pcm xhci_hcd snd_timer drm_panel_orientation_quirks usbcore snd video usb_common wmi soundcore backlight button processor efivarfs CPU: 3 PID: 0 Comm: swapper/3 Not tainted 6.3.0-rc2-bdver2 #1 Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./970-GAMING, BIOS F2 04/06/2016 RIP: 0010:dev_watchdog+0x1a8/0x1b0 Code: ff ff e9 63 ff ff ff c6 05 75 94 83 00 01 4c 89 f7 e8 0c 11 fc ff 48 c7 c7 55 9e b6 9c 4c 89 f6 48 89 c2 89 d9 e8 d8 4d 9e ff <0f> 0b e9 6e ff ff ff 90 41 57 41 56 53 49 89 fe 8b 87 c8 03 00 00 RSP: 0018:ffffb58d0015cea8 EFLAGS: 00010246 RAX: 0000000000000000 RBX: 0000000000000002 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 000000007fffffff R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: ffff931b464e1490 R13: dead000000000122 R14: ffff931b464e1000 R15: ffff931b464e13e0 FS: 0000000000000000(0000) GS:ffff93224ecc0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007facf21f5140 CR3: 00000001bcbc0000 CR4: 00000000000406e0 Call Trace: <IRQ> ? dev_init_scheduler+0x80/0x80 ? dev_init_scheduler+0x80/0x80 call_timer_fn+0x1d/0xa0 __run_timers+0x178/0x1f0 run_timer_softirq+0x14/0x30 __do_softirq+0xc3/0x1d9 __irq_exit_rcu+0x74/0xa0 sysvec_apic_timer_interrupt+0x6d/0x80 </IRQ> <TASK> asm_sysvec_apic_timer_interrupt+0x16/0x20 RIP: 0010:cpuidle_enter_state+0x119/0x210 Code: fe ff ff e8 d9 d9 90 ff e8 44 f8 ff ff 48 89 c5 31 ff e8 7a 5b 90 ff 45 84 ed 48 8b 5c 24 10 74 05 e8 5b b6 e7 ff fb 45 85 f6 <78> 4e 44 89 f0 48 6b d0 68 48 8b 4c 13 48 48 2b 6c 24 08 49 89 6f RSP: 0018:ffffb58d000afe88 EFLAGS: 00000202 RAX: 0000000000000000 RBX: ffffffffc02cf0f0 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000683d128de R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: ffffffffc02c9e70 R12: 0000000000000002 R13: 0000000000000000 R14: 0000000000000002 R15: ffff931bfece7000 ? cleanup_module+0x60/0x60 [processor] ? cpuidle_enter_state+0x106/0x210 cpuidle_enter+0x24/0x40 do_idle+0x130/0x1c0 cpu_startup_entry+0x14/0x20 start_secondary+0x8a/0x90 secondary_startup_64_no_verify+0xcf/0xdb </TASK> ---[ end trace 0000000000000000 ]--- alx 0000:05:00.0 enp5s0: NIC Up: 100 Mbps Full [...]
Some data about the system: # inxi -bZ System: Host: outsider Kernel: 6.3.0-rc2-bdver2 arch: x86_64 bits: 64 Desktop: MATE v: 1.26.0 Distro: Gentoo Base System release 2.13 Machine: Type: Desktop Mobo: Gigabyte model: 970-GAMING v: x.x serial: N/A UEFI: American Megatrends v: F2 date: 04/06/2016 CPU: Info: 8-core AMD FX-8370 [MT MCP] speed (MHz): avg: 1400 min/max: 1400/4000 Graphics: Device-1: AMD Turks XT [Radeon HD 6670/7670] driver: radeon v: kernel Display: x11 server: X.Org v: 21.1.7 driver: X: loaded: modesetting unloaded: fbdev,radeon gpu: radeon resolution: 1920x1080~60Hz OpenGL: renderer: AMD TURKS (DRM 2.50.0 / 6.3.0-rc2-bdver2 LLVM 15.0.7) v: 4.5 Mesa 22.3.7 Network: Device-1: Qualcomm Atheros Killer E2400 Gigabit Ethernet driver: alx
# lspci 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD9x0/RX980 Host Bridge (rev 02) 00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD/ATI] RD890S/RD990 I/O Memory Management Unit (IOMMU) 00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GFX port 0) 00:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 0) 00:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 2) 00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (rev 40) 00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 42) 00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA) (rev 40) 00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller (rev 40) 00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge (rev 40) 00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller 00:15.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) 00:15.1 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB700/SB800/SB900 PCI to PCI bridge (PCIE port 1) 00:16.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:16.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 0 00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 1 00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 2 00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 3 00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 4 00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 5 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Turks XT [Radeon HD 6670/7670] 01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Turks HDMI Audio [Radeon HD 6500/6600 / 6700M Series] 02:00.0 USB controller: ASMedia Technology Inc. ASM2142/ASM3142 USB 3.1 Host Controller 03:00.0 Non-Volatile memory controller: Sandisk Corp WD Blue SN550 NVMe SSD (rev 01) 05:00.0 Ethernet controller: Qualcomm Atheros Killer E2400 Gigabit Ethernet Controller (rev 10) 06:00.0 USB controller: VIA Technologies, Inc. VL805/806 xHCI USB 3.0 Controller (rev 01)
# lspci -s 06:00.0 -vv 06:00.0 USB controller: VIA Technologies, Inc. VL805/806 xHCI USB 3.0 Controller (rev 01) (prog-if 30 [XHCI]) Subsystem: Gigabyte Technology Co., Ltd VL805/806 xHCI USB 3.0 Controller 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- Interrupt: pin A routed to IRQ 17 IOMMU group: 12 Region 0: Memory at fe600000 (64-bit, non-prefetchable) [size=4K] Capabilities: [80] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [90] MSI: Enable- Count=1/4 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [c4] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0W DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr+ TransPend- LnkCap: Port #1, Speed 5GT/s, Width x1, ASPM not supported ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp- LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x1 TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range B, 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- LTR- 10BitTagReq- OBFF Disabled, AtomicOpsCtl: ReqEn- 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: [100 v1] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ AERCap: First Error Pointer: 14, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 00000000 06010000 0000000f 04000001 Kernel modules: xhci_pci
# lspci -s 05:00.0 -vv 05:00.0 Ethernet controller: Qualcomm Atheros Killer E2400 Gigabit Ethernet Controller (rev 10) Subsystem: Gigabyte Technology Co., Ltd Killer E2400 Gigabit Ethernet Controller 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 16 IOMMU group: 12 Region 0: Memory at fe700000 (64-bit, non-prefetchable) [size=256K] Region 2: I/O ports at d000 [size=128] Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Express (v1) Endpoint, MSI 00 DevCap: MaxPayload 4096 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- AttnBtn+ AttnInd+ PwrInd+ RBE+ FLReset- SlotPowerLimit 0W DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- NonFatalErr+ FatalErr- UnsupReq+ AuxPwr+ TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp- LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1 TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- Capabilities: [c0] MSI: Enable- Count=1/16 Maskable+ 64bit+ Address: 0000000000000000 Data: 0000 Masking: 00000000 Pending: 00000000 Capabilities: [d8] MSI-X: Enable+ Count=16 Masked- Vector table: BAR=0 offset=00002000 PBA: BAR=0 offset=00003000 Capabilities: [100 v1] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO+ CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ AERCap: First Error Pointer: 14, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 04000001 0000010f 05010000 00000000 Capabilities: [180 v1] Device Serial Number ff-93-c2-07-1c-1b-0d-ff Kernel driver in use: alx
With the VIA VL805/806 USB-Controller disabled in BIOS I don't get this problem, everything works fine. But this way I loose front USB 3 ports... The other ASMedia USB 3.1 controller works fine without hampering the system.
Don't know whether this is a regression - the problem shows up on current kernel 6.2.x or 6.1.x TLS too. Kernel dmesg + .config attached.
Regards, Erhard
On 19.3.2023 2.37, Erhard Furtner wrote:
Greetings!
On my GIGABYTE GA-970-Gaming board (AM3+ board + AMD FX8370 CPU) I got this very annoying problem that onboard ethernet Atheros E2400 (alx) ceases to work when the USB 3.0 controller (VIA VL805/806 chipset) is enabled in BIOS.
# lspci 02:00.0 USB controller: ASMedia Technology Inc. ASM2142/ASM3142 USB 3.1 Host Controller 06:00.0 USB controller: VIA Technologies, Inc. VL805/806 xHCI USB 3.0 Controller (rev 01)
dmesg shows usb bus numbers are not ordered, xhci driver registers two usb buses per host.
xhci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 1 xhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 2 xhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 3 xhci_hcd 0000:06:00.0: can't setup: -110
With the VIA VL805/806 USB-Controller disabled in BIOS I don't get this problem, everything works fine. But this way I loose front USB 3 ports... The other ASMedia USB 3.1 controller works fine without hampering the system.
Don't know whether this is a regression - the problem shows up on current kernel 6.2.x or 6.1.x TLS too. Kernel dmesg + .config attached.
Regards, Erhard
This could be related to another case with two xHC controllers, but different vendors. Bus numbers were interleaved there as well. Removing the asynch probe helped:
https://lore.kernel.org/linux-usb/d5ff9480-57bd-2c39-8b10-988ad0d14a7e@linux...
Does reverting: 4c2604a9a689 usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS help for you?
Thanks Mathias
On Mon, 20 Mar 2023 11:26:39 +0200 Mathias Nyman mathias.nyman@linux.intel.com wrote:
This could be related to another case with two xHC controllers, but different vendors. Bus numbers were interleaved there as well. Removing the asynch probe helped:
https://lore.kernel.org/linux-usb/d5ff9480-57bd-2c39-8b10-988ad0d14a7e@linux...
Does reverting: 4c2604a9a689 usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS help for you?
Thanks for the hint Mathias! I'll check that out and report back. Which may take some weeks as this system is located at my parents home.
Regards, Erhard
On Mon, 20 Mar 2023 11:26:39 +0200 Mathias Nyman mathias.nyman@linux.intel.com wrote:
This could be related to another case with two xHC controllers, but different vendors. Bus numbers were interleaved there as well. Removing the asynch probe helped:
https://lore.kernel.org/linux-usb/d5ff9480-57bd-2c39-8b10-988ad0d14a7e@linux...
Does reverting: 4c2604a9a689 usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS help for you?
Ok, reverted 4c2604a9a689 usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS now but unfortunately didn't work out. New dmesg with the reverted commit attached.
Regards, Erhard
On 26.3.2023 18.58, Erhard Furtner wrote:
On Mon, 20 Mar 2023 11:26:39 +0200 Mathias Nyman mathias.nyman@linux.intel.com wrote:
This could be related to another case with two xHC controllers, but different vendors. Bus numbers were interleaved there as well. Removing the asynch probe helped:
https://lore.kernel.org/linux-usb/d5ff9480-57bd-2c39-8b10-988ad0d14a7e@linux...
Does reverting: 4c2604a9a689 usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS help for you?
Ok, reverted 4c2604a9a689 usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS now but unfortunately didn't work out. New dmesg with the reverted commit attached.
Regards, Erhard
Closer look at dmesg shows we are stuck while trying to rest the VIA xHC during probe. Driver times out after 10 seconds.
[ 8.306783] xhci_hcd 0000:07:00.0: xHCI Host Controller [ 8.306791] xhci_hcd 0000:07:00.0: new USB bus registered, assigned bus number 10 [ 8.311622] xhci_hcd 0000:07:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x000e address=0xce210880 flags=0x0000] ... [ 18.306812] xhci_hcd 0000:07:00.0: can't setup: -110 [ 18.306830] xhci_hcd 0000:07:00.0: USB bus 10 deregistered [ 18.307005] xhci_hcd 0000:07:00.0: init 0000:07:00.0 fail, -110
There is also a IOMMU entry in the log at the same time driver starts resetting the xHC. There have been some other hosts that triggered IOMMU issues when host tried to access a partial 64 bit DMA address immediately after driver wrote first 32 bits.
Did this VIA xHC work with any older kernel, if yes, any chance you could bisect this?
Also possible that this host would work with a 32 bit DMA mask, hack:
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 6183ce8574b1..e5b7700a807f 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -5408,7 +5408,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
/* Set dma_mask and coherent_dma_mask to 64-bits, * if xHC supports 64-bit addressing */ - if (HCC_64BIT_ADDR(xhci->hcc_params) && + if (0 && HCC_64BIT_ADDR(xhci->hcc_params) && !dma_set_mask(dev, DMA_BIT_MASK(64))) { xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n"); dma_set_coherent_mask(dev, DMA_BIT_MASK(64));
Thanks Mathias
On Wed, 29 Mar 2023 12:51:37 +0300 Mathias Nyman mathias.nyman@linux.intel.com wrote:
There is also a IOMMU entry in the log at the same time driver starts resetting the xHC. There have been some other hosts that triggered IOMMU issues when host tried to access a partial 64 bit DMA address immediately after driver wrote first 32 bits.
Did this VIA xHC work with any older kernel, if yes, any chance you could bisect this?
Not as long I got this machine about 3 yrs ago. But I did notice the issue at that time and my 'solution' was to put a different Renesas chipset based PCIe card in for USB 3 and disable the onboard VIA one. Now as I needed this PCIe USB-card on another machine I stumbled over this issue again...
But I can try to check out if it works on an older LTS kernel anyway and start a bisect from there on. This will take some time of course... Would there be a particularly good starting point for an older kernel? Please let me know if yes.
Also possible that this host would work with a 32 bit DMA mask, hack:
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 6183ce8574b1..e5b7700a807f 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -5408,7 +5408,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks) /* Set dma_mask and coherent_dma_mask to 64-bits, * if xHC supports 64-bit addressing */
if (HCC_64BIT_ADDR(xhci->hcc_params) &&
if (0 && HCC_64BIT_ADDR(xhci->hcc_params) && !dma_set_mask(dev, DMA_BIT_MASK(64))) { xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n"); dma_set_coherent_mask(dev, DMA_BIT_MASK(64));
Thanks for taking a look Mathias!
Unfortunately this 32 bit DMA mask hack does not work out either, the issue still persists. dmesg attached.
Regards, Erhard
linux-stable-mirror@lists.linaro.org