Loading and unloading vhci-hcd produces a warning in syslog (Trying to free already-free IRQ 0). I know vhci-hcd is staging but backporting as much as possible changes of usbip from newer kernel versions (without the switch to udev) changes nothing to this warning. Does anybody know how to fix this? usbip # modprobe vhci-hcd usbip # rmmod vhci-hcd vhci-hcd tail -F /var/log/messages: Oct 9 15:58:49 usbip kernel: usbip_core: module is from the staging directory, the quality is unknown, you have been warned. Oct 9 15:58:49 usbip kernel: usbip_core: USB/IP Core v1.0.0 Oct 9 15:58:49 usbip kernel: vhci_hcd: module is from the staging directory, the quality is unknown, you have been warned. Oct 9 15:58:49 usbip kernel: vhci_hcd vhci_hcd: USB/IP Virtual Host Controller Oct 9 15:58:49 usbip kernel: vhci_hcd vhci_hcd: new USB bus registered, assigned bus number 3 Oct 9 15:58:49 usbip kernel: usb usb3: New USB device found, idVendor=1d6b, idProduct=0002 Oct 9 15:58:49 usbip kernel: usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1 Oct 9 15:58:49 usbip kernel: usb usb3: Product: USB/IP Virtual Host Controller Oct 9 15:58:49 usbip kernel: usb usb3: Manufacturer: Linux 3.2.63 vhci_hcd Oct 9 15:58:49 usbip kernel: usb usb3: SerialNumber: vhci_hcd Oct 9 15:58:49 usbip kernel: hub 3-0:1.0: USB hub found Oct 9 15:58:49 usbip kernel: hub 3-0:1.0: 8 ports detected Oct 9 15:58:49 usbip kernel: vhci_hcd: USB/IP 'Virtual' Host Controller (VHCI) Driver v1.0.0 Oct 9 15:59:02 usbip kernel: vhci_hcd vhci_hcd: remove, state 1 Oct 9 15:59:02 usbip kernel: usb usb3: USB disconnect, device number 1 Oct 9 15:59:02 usbip kernel: vhci_hcd: stop threads Oct 9 15:59:02 usbip kernel: vhci_hcd: release socket Oct 9 15:59:02 usbip kernel: vhci_hcd: disconnect device Oct 9 15:59:02 usbip kernel: vhci_hcd: stop threads Oct 9 15:59:02 usbip kernel: vhci_hcd: release socket Oct 9 15:59:02 usbip kernel: vhci_hcd: disconnect device Oct 9 15:59:02 usbip kernel: vhci_hcd: stop threads Oct 9 15:59:02 usbip kernel: vhci_hcd: release socket Oct 9 15:59:02 usbip kernel: vhci_hcd: disconnect device Oct 9 15:59:02 usbip kernel: vhci_hcd: stop threads Oct 9 15:59:02 usbip kernel: vhci_hcd: release socket Oct 9 15:59:02 usbip kernel: vhci_hcd: disconnect device Oct 9 15:59:02 usbip kernel: vhci_hcd: stop threads Oct 9 15:59:02 usbip kernel: vhci_hcd: release socket Oct 9 15:59:02 usbip kernel: vhci_hcd: disconnect device Oct 9 15:59:02 usbip kernel: vhci_hcd: stop threads Oct 9 15:59:02 usbip kernel: vhci_hcd: release socket Oct 9 15:59:02 usbip kernel: vhci_hcd: disconnect device Oct 9 15:59:02 usbip kernel: vhci_hcd: stop threads Oct 9 15:59:02 usbip kernel: vhci_hcd: release socket Oct 9 15:59:02 usbip kernel: vhci_hcd: disconnect device Oct 9 15:59:02 usbip kernel: vhci_hcd: stop threads Oct 9 15:59:02 usbip kernel: vhci_hcd: release socket Oct 9 15:59:02 usbip kernel: vhci_hcd: disconnect device Oct 9 15:59:02 usbip kernel: ------------[ cut here ]------------ Oct 9 15:59:02 usbip kernel: WARNING: at kernel/irq/manage.c:1214 __free_irq+0x74/0x130() Oct 9 15:59:02 usbip kernel: Hardware name: VMware Virtual Platform Oct 9 15:59:02 usbip kernel: Trying to free already-free IRQ 0 Oct 9 15:59:02 usbip kernel: Modules linked in: vhci_hcd(C-) usbip_core(C) ipv6 e1000 isofs ide_tape ide_cd_mod cdrom usbhid hid xhci_hcd ohci_hcd ssb uhci_hcd ehci_hcd usbcore usb_common psmouse Oct 9 15:59:02 usbip kernel: Pid: 1725, comm: rmmod Tainted: G C 3.2.63 #1 Oct 9 15:59:02 usbip kernel: Call Trace: Oct 9 15:59:02 usbip kernel: [<c102a281>] warn_slowpath_common+0x65/0x7a Oct 9 15:59:02 usbip kernel: [<c105677f>] ? __free_irq+0x74/0x130 Oct 9 15:59:02 usbip kernel: [<c102a2fa>] warn_slowpath_fmt+0x26/0x2a Oct 9 15:59:02 usbip kernel: [<c105677f>] __free_irq+0x74/0x130 Oct 9 15:59:02 usbip kernel: [<c105689a>] free_irq+0x5f/0x77 Oct 9 15:59:02 usbip kernel: [<f808ef85>] usb_remove_hcd+0xe8/0x105 [usbcore] Oct 9 15:59:02 usbip kernel: [<f8142c37>] vhci_hcd_remove+0x17/0x2d [vhci_hcd] Oct 9 15:59:02 usbip kernel: [<c121bcfc>] platform_drv_remove+0xc/0xe Oct 9 15:59:02 usbip kernel: [<c121acac>] __device_release_driver+0x45/0x7b Oct 9 15:59:02 usbip kernel: [<c121acfa>] device_release_driver+0x18/0x23 Oct 9 15:59:02 usbip kernel: [<c121a9a4>] bus_remove_device+0x62/0x6d Oct 9 15:59:02 usbip kernel: [<c1218ecf>] device_del+0xe9/0x12e Oct 9 15:59:02 usbip kernel: [<c121c034>] platform_device_del+0x15/0x4b Oct 9 15:59:02 usbip kernel: [<c121c22f>] platform_device_unregister+0xb/0x15 Oct 9 15:59:02 usbip kernel: [<f81439e5>] vhci_hcd_exit+0xd/0x19 [vhci_hcd] Oct 9 15:59:02 usbip kernel: [<c104d924>] sys_delete_module+0x171/0x1d8 Oct 9 15:59:02 usbip kernel: [<c107790f>] ? remove_vma+0x41/0x47 Oct 9 15:59:02 usbip kernel: [<c1078509>] ? do_munmap+0x1ee/0x206 Oct 9 15:59:02 usbip kernel: [<c13011b5>] syscall_call+0x7/0x7 Oct 9 15:59:02 usbip kernel: ---[ end trace b98bd8e106bc498c ]--- Oct 9 15:59:02 usbip kernel: vhci_hcd vhci_hcd: USB bus 3 deregistered Thank you!
On Thu, Oct 09, 2014 at 12:09:46PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote: > https://bugzilla.kernel.org/show_bug.cgi?id=85961 > > Bug ID: 85961 > Summary: unloading vhci-hcd tries to free already-free IRQ 0 Please send to the linux-usb@vger.kernel.org mailing list
irq 0 means "no interrupt is assigned" so this actually looks like you want a check in usb_remove_hcd against irq != 0
I fixed this with https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=cd70469d084fde198dc07c1a31b8463562228a5a following an advice from Thomas Pugliese in linux-usb@vger.kernel.org. Thank you Alan.
Awesome.. in which case closing time