-
-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
usb-proxy incompatible with Linux Kernel 5.7+ #5905
Comments
Never mind, seems to be a duplicate of #3612 |
In fact, i am unsure that it is really a duplicate. Sorry, I reopen it and let you decide |
This issue was reported to the Linux kernel's Bugzilla instance by another person using usbip. Here is a link to the bug report. As I noted in my comment on the bug report page, reverting 5 commits appears to resolve this issue for the time being. |
It sounds like this might be an upstream bug. |
@andrewdavidwong, I confirm that this is an upstream bug, but it has not received attention from upstream yet. |
Closing as "not our bug." If you believe this is a mistake, please leave a comment, and we'll be happy to take another look. Thank you. |
Commit 88b7381 ("USB: Select better matching USB drivers when available") introduced the use of a "match" function to select a non-generic/better driver for a particular USB device. This unfortunately breaks the operation of usbip in general, as reported in the kernel bugzilla with bug 208267 (linked below). Upon inspecting the aforementioned commit, one can observe that the original code in the usb_device_match function used to return 1 unconditionally, but the aforementioned commit makes the usb_device_match function use identifier tables and "match" virtual functions, if either of them are available. Hence, this commit implements a match function for usbip that unconditionally returns true to ensure that usbip is functional again. This change has been verified to restore usbip functionality, with a v5.7.y kernel on an up-to-date version of Qubes OS 4.0, which uses usbip to redirect USB devices between VMs. Thanks to Jonathan Dieter for the effort in bisecting this issue down to the aforementioned commit. Fixes: 88b7381 ("USB: Select better matching USB drivers when available") Link: https://bugzilla.kernel.org/show_bug.cgi?id=208267 Link: https://bugzilla.redhat.com/show_bug.cgi?id=1856443 Link: QubesOS/qubes-issues#5905 Signed-off-by: M. Vefa Bicakci <[email protected]> Cc: <[email protected]> # 5.7 Cc: Valentina Manea <[email protected]> Cc: Shuah Khan <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Bastien Nocera <[email protected]> Cc: Alan Stern <[email protected]>
Commit 88b7381 ("USB: Select better matching USB drivers when available") introduced the use of a "match" function to select a non-generic/better driver for a particular USB device. This unfortunately breaks the operation of usbip in general, as reported in the kernel bugzilla with bug 208267 (linked below). Upon inspecting the aforementioned commit, one can observe that the original code in the usb_device_match function used to return 1 unconditionally, but the aforementioned commit makes the usb_device_match function use identifier tables and "match" virtual functions, if either of them are available. Hence, this commit implements a match function for usbip that unconditionally returns true to ensure that usbip is functional again. This change has been verified to restore usbip functionality, with a v5.7.y kernel on an up-to-date version of Qubes OS 4.0, which uses usbip to redirect USB devices between VMs. Thanks to Jonathan Dieter for the effort in bisecting this issue down to the aforementioned commit. Fixes: 88b7381 ("USB: Select better matching USB drivers when available") Link: https://bugzilla.kernel.org/show_bug.cgi?id=208267 Link: https://bugzilla.redhat.com/show_bug.cgi?id=1856443 Link: QubesOS/qubes-issues#5905 Signed-off-by: M. Vefa Bicakci <[email protected]> Cc: <[email protected]> # 5.7 Cc: Valentina Manea <[email protected]> Cc: Alan Stern <[email protected]> Reviewed-by: Bastien Nocera <[email protected]> Reviewed-by: Shuah Khan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
commit 7a2f297 upstream. Commit 88b7381 ("USB: Select better matching USB drivers when available") introduced the use of a "match" function to select a non-generic/better driver for a particular USB device. This unfortunately breaks the operation of usbip in general, as reported in the kernel bugzilla with bug 208267 (linked below). Upon inspecting the aforementioned commit, one can observe that the original code in the usb_device_match function used to return 1 unconditionally, but the aforementioned commit makes the usb_device_match function use identifier tables and "match" virtual functions, if either of them are available. Hence, this commit implements a match function for usbip that unconditionally returns true to ensure that usbip is functional again. This change has been verified to restore usbip functionality, with a v5.7.y kernel on an up-to-date version of Qubes OS 4.0, which uses usbip to redirect USB devices between VMs. Thanks to Jonathan Dieter for the effort in bisecting this issue down to the aforementioned commit. Fixes: 88b7381 ("USB: Select better matching USB drivers when available") Link: https://bugzilla.kernel.org/show_bug.cgi?id=208267 Link: https://bugzilla.redhat.com/show_bug.cgi?id=1856443 Link: QubesOS/qubes-issues#5905 Signed-off-by: M. Vefa Bicakci <[email protected]> Cc: <[email protected]> # 5.7 Cc: Valentina Manea <[email protected]> Cc: Alan Stern <[email protected]> Reviewed-by: Bastien Nocera <[email protected]> Reviewed-by: Shuah Khan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
BugLink: https://bugs.launchpad.net/bugs/1894956 commit 7a2f297 upstream. Commit 88b7381 ("USB: Select better matching USB drivers when available") introduced the use of a "match" function to select a non-generic/better driver for a particular USB device. This unfortunately breaks the operation of usbip in general, as reported in the kernel bugzilla with bug 208267 (linked below). Upon inspecting the aforementioned commit, one can observe that the original code in the usb_device_match function used to return 1 unconditionally, but the aforementioned commit makes the usb_device_match function use identifier tables and "match" virtual functions, if either of them are available. Hence, this commit implements a match function for usbip that unconditionally returns true to ensure that usbip is functional again. This change has been verified to restore usbip functionality, with a v5.7.y kernel on an up-to-date version of Qubes OS 4.0, which uses usbip to redirect USB devices between VMs. Thanks to Jonathan Dieter for the effort in bisecting this issue down to the aforementioned commit. Fixes: 88b7381 ("USB: Select better matching USB drivers when available") Link: https://bugzilla.kernel.org/show_bug.cgi?id=208267 Link: https://bugzilla.redhat.com/show_bug.cgi?id=1856443 Link: QubesOS/qubes-issues#5905 Signed-off-by: M. Vefa Bicakci <[email protected]> Cc: <[email protected]> # 5.7 Cc: Valentina Manea <[email protected]> Cc: Alan Stern <[email protected]> Reviewed-by: Bastien Nocera <[email protected]> Reviewed-by: Shuah Khan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Paolo Pisati <[email protected]>
Commit 88b7381a939d ("USB: Select better matching USB drivers when available") introduced the use of a "match" function to select a non-generic/better driver for a particular USB device. This unfortunately breaks the operation of usbip in general, as reported in the kernel bugzilla with bug 208267 (linked below). Upon inspecting the aforementioned commit, one can observe that the original code in the usb_device_match function used to return 1 unconditionally, but the aforementioned commit makes the usb_device_match function use identifier tables and "match" virtual functions, if either of them are available. Hence, this commit implements a match function for usbip that unconditionally returns true to ensure that usbip is functional again. This change has been verified to restore usbip functionality, with a v5.7.y kernel on an up-to-date version of Qubes OS 4.0, which uses usbip to redirect USB devices between VMs. Thanks to Jonathan Dieter for the effort in bisecting this issue down to the aforementioned commit. Fixes: 88b7381a939d ("USB: Select better matching USB drivers when available") Link: https://bugzilla.kernel.org/show_bug.cgi?id=208267 Link: https://bugzilla.redhat.com/show_bug.cgi?id=1856443 Link: QubesOS/qubes-issues#5905 Signed-off-by: M. Vefa Bicakci <[email protected]> Cc: <[email protected]> # 5.7 Cc: Valentina Manea <[email protected]> Cc: Alan Stern <[email protected]> Reviewed-by: Bastien Nocera <[email protected]> Reviewed-by: Shuah Khan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
Qubes OS version
R4.0, testing repository
Affected component(s) or functionality
USB Proxy
Brief summary
Unable to pass USB device to others qubes when using Linux Kernel 5.7.4-1
To Reproduce
Use testing repository for R4.0. Upgrade kernel. Try to pass a usb device to another qubes
Expected behavior
Work as good as with Kernel < 5.7
Actual behavior
dom0: display an error popup "No device info received, connection failed, check backend side for details"
sys-usb journalctl: /usr/lib/qubes/usb-export: line 95: echo: Write Error: No such device
Maybe related to this part of the code (tested nothing, just a think)
Solutions you've tried
Switch back to older kernel version
The text was updated successfully, but these errors were encountered: