usbfs allows user space to pass down an URB which sets URB_SHORT_NOT_OK for output URBs. That causes usbcore to log messages without limit for a nonsensical disallowed combination. The fix is to silently drop the attribute in usbfs. The problem is reported to exist since 3.14 https://www.virtualbox.org/ticket/13085
Unified · Split
| @@ -1509,7 +1509,7 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb · 1508 unmodified lines | |||
| 1509 | u = (is_in ? URB_DIR_IN : URB_DIR_OUT); | 1509 | u = (is_in ? URB_DIR_IN : URB_DIR_OUT); |
| 1510 | if (uurb->flags & USBDEVFS_URB_ISO_ASAP) | 1510 | if (uurb->flags & USBDEVFS_URB_ISO_ASAP) |
| 1511 | u |= URB_ISO_ASAP; | 1511 | u |= URB_ISO_ASAP; |
| 1512 | if (uurb->flags & USBDEVFS_URB_SHORT_NOT_OK) | 1512 | if (uurb->flags & USBDEVFS_URB_SHORT_NOT_OK && is_in) |
| 1513 | u |= URB_SHORT_NOT_OK; | 1513 | u |= URB_SHORT_NOT_OK; |
| 1514 | if (uurb->flags & USBDEVFS_URB_NO_FSBR) | 1514 | if (uurb->flags & USBDEVFS_URB_NO_FSBR) |
| 1515 | u |= URB_NO_FSBR; | 1515 | u |= URB_NO_FSBR; |