Bug#1115580: linux-image-6.12.43+deb13-amd64: xhci_usb vfio_pci: usb controller fails to reset when passing through to a qemu VM
Control: tags -1 + moreinfo
Hi Andrea,
On Thu, Sep 18, 2025 at 11:28:29AM +0200, Andrea Palazzi wrote:
> Package: src:linux
> Version: 6.12.43-1
> Severity: normal
> X-Debbugs-Cc: debian-amd64@lists.debian.org, palazziandrea@yahoo.it
> User: debian-amd64@lists.debian.org
> Usertags: amd64
>
> Dear Maintainer,
>
> * What led up to the situation?
>
> I'm trying to passthrough an USB controller to a QEMU VM to share keyboard and
> mouse via a KVM switch, however the controller fails to change power state -
> maybe a reset bug?
>
> * What exactly did you do (or not do) that was effective (or
> ineffective)?
>
> After a search I tried to add options vfio-pci ids=1022:14c9 disable_idle_d3=1
> to /etc/modprobe.d/vfio.conf , but that didn't work.
>
> * What was the outcome of this action?
>
> No changes
>
> * What outcome did you expect instead?
>
> I expect the USB controlelr to be passed to the VM.
>
> Here below is an extract from the kernel logs.
>
> [ 359.632508] xhci_hcd 0000:c1:00.4: remove, state 4
> [ 359.632516] usb usb2: USB disconnect, device number 1
> [ 359.632746] xhci_hcd 0000:c1:00.4: USB bus 2 deregistered
> [ 359.632754] xhci_hcd 0000:c1:00.4: remove, state 1
> [ 359.632765] usb usb1: USB disconnect, device number 1
> [ 359.632767] usb 1-1: USB disconnect, device number 2
> [ 359.632769] usb 1-1.1: USB disconnect, device number 5
> [ 359.751074] usb 1-1.4: USB disconnect, device number 7
> [ 360.295060] usb 1-2: USB disconnect, device number 3
> [ 360.295065] usb 1-2.1: USB disconnect, device number 4
> [ 360.295068] usb 1-2.1.4: USB disconnect, device number 8
> [ 360.295071] usb 1-2.1.4.1: USB disconnect, device number 11
> [ 360.487061] usb 1-2.3: USB disconnect, device number 6
> [ 360.871059] usb 1-2.4: USB disconnect, device number 9
> [ 360.967992] xhci_hcd 0000:c1:00.4: USB bus 1 deregistered
> [ 361.039526] audit: type=1400 audit(1758187296.085:138): apparmor="STATUS"
> operation="profile_replace" profile="unconfined"
> name="libvirt-c53156d7-6b25-4664-ab2f-322f5c5edf88" pid=8777
> comm="apparmor_parser"
> [ 361.074989] audit: type=1400 audit(1758187296.121:139): apparmor="STATUS"
> operation="profile_replace" info="same as current profile, skipping"
> profile="unconfined" name="libvirt-c53156d7-6b25-4664-ab2f-322f5c5edf88//passt"
> pid=8777 comm="apparmor_parser"
> [ 361.153072] audit: type=1400 audit(1758187296.197:140): apparmor="STATUS"
> operation="profile_replace" info="same as current profile, skipping"
> profile="unconfined" name="libvirt-c53156d7-6b25-4664-ab2f-322f5c5edf88"
> pid=8785 comm="apparmor_parser"
> [ 361.153588] audit: type=1400 audit(1758187296.197:141): apparmor="STATUS"
> operation="profile_replace" info="same as current profile, skipping"
> profile="unconfined" name="libvirt-c53156d7-6b25-4664-ab2f-322f5c5edf88//passt"
> pid=8785 comm="apparmor_parser"
> [ 361.322658] tun: Universal TUN/TAP device driver, 1.6
> [ 361.323435] br0: port 2(vnet0) entered blocking state
> [ 361.323439] br0: port 2(vnet0) entered disabled state
> [ 361.323448] vnet0: entered allmulticast mode
> [ 361.323490] vnet0: entered promiscuous mode
> [ 361.323704] br0: port 2(vnet0) entered blocking state
> [ 361.323707] br0: port 2(vnet0) entered forwarding state
> [ 361.717045] mmap kvmfr0: 7f0717ffe000-7f071fffe000 with size 134217728
> offset 0
> [ 368.107426] vfio-pci 0000:43:00.0: enabling device (0002 -> 0003)
> [ 368.110005] vfio-pci 0000:43:00.1: enabling device (0000 -> 0002)
> [ 369.366004] vfio-pci 0000:c1:00.4: not ready 1023ms after FLR; waiting
> [ 370.421951] vfio-pci 0000:c1:00.4: not ready 2047ms after FLR; waiting
> [ 372.721838] vfio-pci 0000:c1:00.4: not ready 4095ms after FLR; waiting
> [ 377.077617] vfio-pci 0000:c1:00.4: not ready 8191ms after FLR; waiting
> [ 385.525207] vfio-pci 0000:c1:00.4: not ready 16383ms after FLR; waiting
> [ 402.160360] vfio-pci 0000:c1:00.4: not ready 32767ms after FLR; waiting
> [ 436.978490] vfio-pci 0000:c1:00.4: not ready 65535ms after FLR; giving up
> [ 438.018660] br0: port 2(vnet0) entered disabled state
> [ 438.018942] vnet0 (unregistering): left allmulticast mode
> [ 438.018946] vnet0 (unregistering): left promiscuous mode
> [ 438.018950] br0: port 2(vnet0) entered disabled state
> [ 441.363433] kauditd_printk_skb: 4 callbacks suppressed
> [ 441.363437] audit: type=1400 audit(1758187376.413:146): apparmor="STATUS"
> operation="profile_remove" profile="unconfined"
> name="libvirt-c53156d7-6b25-4664-ab2f-322f5c5edf88" pid=9119
> comm="apparmor_parser"
> [ 441.369034] xhci_hcd 0000:c1:00.4: Unable to change power state from D3cold
> to D0, device inaccessible
> [ 441.369157] xhci_hcd 0000:c1:00.4: xHCI Host Controller
> [ 441.369163] xhci_hcd 0000:c1:00.4: new USB bus registered, assigned bus
> number 1
> [ 441.369170] xhci_hcd 0000:c1:00.4: Host halt failed, -19
> [ 441.369171] xhci_hcd 0000:c1:00.4: can't setup: -19
> [ 441.369174] xhci_hcd 0000:c1:00.4: USB bus 1 deregistered
> [ 441.369202] xhci_hcd 0000:c1:00.4: init 0000:c1:00.4 fail, -19
>
>
> -- Package-specific info:
> ** Version:
> Linux version 6.12.43+deb13-amd64 (debian-kernel@lists.debian.org) (x86_64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44) #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)
>
> ** Command line:
> BOOT_IMAGE=/vmlinuz-6.12.43+deb13-amd64 root=ZFS=/ROOT/debian ro root=ZFS=rpool/ROOT/debian quiet amd_iommu=on iommu=pt kvm_amd.npt=1 kvm_amd.avic=1 vfio_pci.ids=1002:73df,1002:73ff,1002:ab28 nofb video=efifb:off video=vesafb:off video=simplefb:off amdgpu.ppfeaturemask=0xffffffff
>
> ** Tainted: POE (12289)
> * proprietary module was loaded
> * externally-built ("out-of-tree") module was loaded
> * unsigned module was loaded
We noticed that you have OOT modules loaded.
Thus please test explicitly if you can reproduce the issue with no
external module loaded. I understand this is not possible for ZFS
modules (which though might not have a direct relation), but there is
more importantly 'kvmfr' loaded.
As I understand the out-of-tree module kvmfr is directly related to
PCI passthrough.
Regards,
Salvatore
Reply to: