Bug 85961 - unloading vhci-hcd tries to free already-free IRQ 0
Summary: unloading vhci-hcd tries to free already-free IRQ 0
Status: RESOLVED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Greg Kroah-Hartman
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-10-09 12:09 UTC by tombork
Modified: 2014-10-23 21:48 UTC (History)
2 users (show)

See Also:
Kernel Version: 3.2.63
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description tombork 2014-10-09 12:09:46 UTC
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!
Comment 1 Greg Kroah-Hartman 2014-10-09 15:00:37 UTC
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
Comment 2 Alan 2014-10-23 14:31:15 UTC
irq 0 means "no interrupt is assigned"

so this actually looks like you want a check in usb_remove_hcd against irq != 0
Comment 3 tombork 2014-10-23 18:33:12 UTC
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.
Comment 4 Alan 2014-10-23 21:48:29 UTC
Awesome.. in which case closing time

Note You need to log in before you can comment on or make changes to this bug.