Opened 7 years ago
Last modified 7 years ago
#16724 new defect
Usb disconnect causes guest USB driver crash
Reported by: | Vbuntu | Owned by: | |
---|---|---|---|
Component: | guest additions | Version: | VirtualBox 5.1.22 |
Keywords: | usb passthrough guest addons ubuntu guest | Cc: | |
Guest type: | Linux | Host type: | Mac OS X |
Description
When disconnecting a USB device that is passed through to a linux (Ubuntu 14.04 VM), the result is a tainted driver in the VM. After this, USB devices no longer pass through correctly. Dmesg trace below:
[63154.986873] usb 2-2: Product: Adafruit Industries [63155.395258] ohci-pci 0000:00:06.0: frame counter not updating; disabled [63155.395266] ohci-pci 0000:00:06.0: HC died; cleaning up [63159.987813] usb 2-2: can't set config #1, error -110 [63159.987878] usb 2-1: USB disconnect, device number 2 [63161.397977] irq 22: nobody cared (try booting with the "irqpoll" option) [63161.397985] CPU: 0 PID: 303 Comm: systemd-udevd Tainted: G OE 3.19.0-25-generic #26~14.04.1-Ubuntu [63161.397987] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006 [63161.397988] ffff880035c47aa4 ffff88003fc03ce0 ffffffff817aed00 0000000000003a40 [63161.397991] ffff880035c47a00 ffff88003fc03d10 ffffffff810ce3b6 ffff88003fc03d10 [63161.397992] ffff880035c47a00 0000000000000016 0000000000000000 ffff88003fc03d60 [63161.397994] Call Trace: [63161.397996] <IRQ> [<ffffffff817aed00>] dump_stack+0x45/0x57 [63161.398010] [<ffffffff810ce3b6>] report_bad_irq+0x36/0xd0 [63161.398012] [<ffffffff810ce8ec>] note_interrupt+0x24c/0x2a0 [63161.398016] [<ffffffff814c588a>] ? add_interrupt_randomness+0x3a/0x1e0 [63161.398019] [<ffffffff810cbfde>] handle_irq_event_percpu+0xae/0x1a0 [63161.398020] [<ffffffff810cc111>] handle_irq_event+0x41/0x70 [63161.398022] [<ffffffff810ced12>] handle_fasteoi_irq+0x82/0x140 [63161.398025] [<ffffffff81017682>] handle_irq+0x22/0x40 [63161.398027] [<ffffffff817b9621>] do_IRQ+0x51/0xf0 [63161.398031] [<ffffffff817b742d>] common_interrupt+0x6d/0x6d [63161.398034] [<ffffffff81078e7f>] ? do_softirq+0x7f/0x270 [63161.398036] [<ffffffff81078e20>] ? do_softirq+0x20/0x270 [63161.398038] [<ffffffff810792ad>] irq_exit+0x9d/0xb0 [63161.398039] [<ffffffff817b970a>] smp_apic_timer_interrupt+0x4a/0x60 [63161.398041] [<ffffffff817b773d>] apic_timer_interrupt+0x6d/0x80 [63161.398042] <EOI> [<ffffffff8107354b>] ? copy_process.part.26+0x13db/0x1c00 [63161.398047] [<ffffffff81073f25>] do_fork+0xd5/0x340 [63161.398052] [<ffffffff8168be11>] ? sock_alloc_file+0x91/0x120 [63161.398054] [<ffffffff81074216>] SyS_clone+0x16/0x20 [63161.398056] [<ffffffff817b69d9>] stub_clone+0x69/0x90 [63161.398057] [<ffffffff817b668d>] ? system_call_fastpath+0x16/0x1b [63161.398059] handlers: [63161.398069] [<ffffffff815a7280>] usb_hcd_irq [63161.398070] Disabling IRQ #22 [63161.399293] usb 2-2: USB disconnect, device number 4
Removing and re-installing guest addons will allow devices to pass through successfully again, but only until they are disconnected. Guest reboots do not seem to always allow passthrough again without uninstalling and reinstalling guest addons. I can provide more logs if necessary.
Also note that the other usb devices that are created on the guest by VBox disappear when this happens:
lsusb (before disconnect):
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 239a:0001[[BR]] Bus 002 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
lsusb (after disconnect):
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub