3.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Hans de Goede <hdego...@redhat.com>

commit cc4deafc86f75f4e716b37fb4ea3572eb1e49e50 upstream.

Don't complain about controllers without sg support if there are other
reasons why uas cannot be used anyways.

Signed-off-by: Hans de Goede <hdego...@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 drivers/usb/storage/uas-detect.h |   28 ++++++++++------------------
 1 file changed, 10 insertions(+), 18 deletions(-)

--- a/drivers/usb/storage/uas-detect.h
+++ b/drivers/usb/storage/uas-detect.h
@@ -9,32 +9,15 @@ static int uas_is_interface(struct usb_h
                intf->desc.bInterfaceProtocol == USB_PR_UAS);
 }
 
-static int uas_isnt_supported(struct usb_device *udev)
-{
-       struct usb_hcd *hcd = bus_to_hcd(udev->bus);
-
-       dev_warn(&udev->dev, "The driver for the USB controller %s does not "
-                       "support scatter-gather which is\n",
-                       hcd->driver->description);
-       dev_warn(&udev->dev, "required by the UAS driver. Please try an"
-                       "alternative USB controller if you wish to use UAS.\n");
-       return -ENODEV;
-}
-
 static int uas_find_uas_alt_setting(struct usb_interface *intf)
 {
        int i;
-       struct usb_device *udev = interface_to_usbdev(intf);
-       int sg_supported = udev->bus->sg_tablesize != 0;
 
        for (i = 0; i < intf->num_altsetting; i++) {
                struct usb_host_interface *alt = &intf->altsetting[i];
 
-               if (uas_is_interface(alt)) {
-                       if (!sg_supported)
-                               return uas_isnt_supported(udev);
+               if (uas_is_interface(alt))
                        return alt->desc.bAlternateSetting;
-               }
        }
 
        return -ENODEV;
@@ -92,5 +75,14 @@ static int uas_use_uas_driver(struct usb
        if (r < 0)
                return 0;
 
+       if (udev->bus->sg_tablesize == 0) {
+               dev_warn(&udev->dev,
+                       "The driver for the USB controller %s does not support 
scatter-gather which is\n",
+                       hcd->driver->description);
+               dev_warn(&udev->dev,
+                       "required by the UAS driver. Please try an other USB 
controller if you wish to use UAS.\n");
+               return 0;
+       }
+
        return 1;
 }


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to