The new control-message helpers include a pipe-type check which is almost completely redundant. Control messages are generally sent to the default pipe which always exists and is of the correct type since its endpoint representation is created by USB core as part of enumeration for all devices. There is currently only one instance of a driver in the tree which use a control endpoint other than endpoint 0 (and it does not use the new helpers). Drivers should be testing for the existence of their resources at probe rather than at runtime, but to catch drivers failing to do so USB core already does a sanity check on URB submission and triggers a WARN(). Having the same sanity check done in the helper only suppresses the warning without allowing us to find and fix the drivers. The first patch drops the sanity check from the helpers; the second removes a redundant check for short transfers in usb_control_msg_send() which is always treated as an error; the final patch switches to using -EREMOTEIO for short reads which is the error code already used by the host-controller drivers for this. Johan Johan Hovold (3): USB: core: drop pipe-type check from new control-message helpers USB: core: drop short-transfer check from usb_control_msg_send() USB: core: return -EREMOTEIO on short usb_control_msg_recv() drivers/usb/core/message.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) -- 2.26.2