USB: core: drop pipe-type check from new control-message helpers
authorJohan Hovold <johan@kernel.org>
Fri, 4 Dec 2020 08:51:08 +0000 (09:51 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Dec 2020 14:23:24 +0000 (15:23 +0100)
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.

Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20201204085110.20055-2-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/message.c

index d92a04de0c50493c814d5cf7cf9643da56e922d7..30e9e680c74cc85673600c9f74f744f80f74620d 100644 (file)
@@ -204,9 +204,6 @@ int usb_control_msg_send(struct usb_device *dev, __u8 endpoint, __u8 request,
        int ret;
        u8 *data = NULL;
 
-       if (usb_pipe_type_check(dev, pipe))
-               return -EINVAL;
-
        if (size) {
                data = kmemdup(driver_data, size, memflags);
                if (!data)
@@ -272,7 +269,7 @@ int usb_control_msg_recv(struct usb_device *dev, __u8 endpoint, __u8 request,
        int ret;
        u8 *data;
 
-       if (!size || !driver_data || usb_pipe_type_check(dev, pipe))
+       if (!size || !driver_data)
                return -EINVAL;
 
        data = kmalloc(size, memflags);