From: JC Kuo <jckuo@nvidia.com>
To: <linux-usb@vger.kernel.org>, <stern@rowland.harvard.edu>,
<usb-storage@lists.one-eyed-alien.net>, <oneukum@suse.com>
Cc: JC Kuo <jckuo@nvidia.com>
Subject: [PATCH] usb: storage: skip only when uas driver is loaded
Date: Mon, 1 Jul 2019 16:48:48 +0800 [thread overview]
Message-ID: <20190701084848.32502-1-jckuo@nvidia.com> (raw)
When usb-storage driver detects a UAS capable device, it ignores the
device if CONFIG_USB_UAS is enabled. usb-storage driver assumes uas
driver certainly will be loaded. However, it's possible that uas
driver will not be loaded, for example, uas kernel module is not
installed properly or it is in modprobe blacklist.
In case of uas driver not being loaded, the UAS capable device will
not fallback to work at Bulk-only-transfer mode. The device just
disappears without any notification to user/userspace.
This commit changes usb-storage driver to skip UAS capable device
only when uas driver is already loaded to make sure the device will
at least work with Bulk protocol.
Signed-off-by: JC Kuo <jckuo@nvidia.com>
---
drivers/usb/core/driver.c | 1 +
drivers/usb/storage/usb.c | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index ebcadaad89d1..265c5dd490d2 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -1923,3 +1923,4 @@ struct bus_type usb_bus_type = {
.uevent = usb_uevent,
.need_parent_lock = true,
};
+EXPORT_SYMBOL_GPL(usb_bus_type);
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
index 9a79cd9762f3..d8f64e808783 100644
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -1097,9 +1097,10 @@ static int storage_probe(struct usb_interface *intf,
int result;
int size;
- /* If uas is enabled and this device can do uas then ignore it. */
+ /* If uas driver is loaded and this device can do uas then ignore it. */
#if IS_ENABLED(CONFIG_USB_UAS)
- if (uas_use_uas_driver(intf, id, NULL))
+ if (driver_find("uas", &usb_bus_type) &&
+ uas_use_uas_driver(intf, id, NULL))
return -ENXIO;
#endif
--
2.17.1
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
next reply other threads:[~2019-07-01 8:49 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-01 8:48 JC Kuo [this message]
2019-07-01 8:52 ` [PATCH] usb: storage: skip only when uas driver is loaded Greg KH
2019-07-02 2:36 ` JC Kuo
2019-07-02 4:42 ` Greg KH
2019-07-02 5:29 ` JC Kuo
2019-07-02 6:56 ` JC Kuo
2019-07-02 7:34 ` Greg KH
2019-07-02 7:57 ` JC Kuo
2019-07-02 8:14 ` Greg KH
2019-07-02 9:11 ` Oliver Neukum
2019-07-02 14:05 ` JC Kuo
2019-07-02 15:29 ` Oliver Neukum
2019-07-02 6:53 ` Oliver Neukum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190701084848.32502-1-jckuo@nvidia.com \
--to=jckuo@nvidia.com \
--cc=linux-usb@vger.kernel.org \
--cc=oneukum@suse.com \
--cc=stern@rowland.harvard.edu \
--cc=usb-storage@lists.one-eyed-alien.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).