Currently, USB request not distinguished different error and always return EIO.
However, some error are recoverable or ignorable in userspace.
Therefore, we preserve the meaning of different error to userspace then
allow userspace to decide how to use the return error.
For example, when host required a vendor defined descriptor but the device refused to do so. According to the XHCI protocol. it should return USB_ERR_STALLED. And this kind of error is definitely ignorable.
Sponsored by: The FreeBSD Foundation