mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-16 22:38:04 +00:00
2177f80076
Duplicate patches between PSP and 3.2.17 have been dropped from the 3.2.17 series Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
56 lines
2.2 KiB
Diff
56 lines
2.2 KiB
Diff
From e2ac51161592388a8e729fda87a35c467e56eb7b Mon Sep 17 00:00:00 2001
|
|
From: Alan Stern <stern@rowland.harvard.edu>
|
|
Date: Wed, 11 Apr 2012 16:09:10 -0400
|
|
Subject: [PATCH 114/165] USB: gadget: storage gadgets send wrong error code
|
|
for unknown commands
|
|
|
|
commit c85dcdac5852295cf6822f5c4331a6ddab72581f upstream.
|
|
|
|
This patch (as1539) fixes a minor bug in the mass-storage gadget
|
|
drivers. When an unknown command is received, the error code sent
|
|
back is "Invalid Field in CDB" rather than "Invalid Command". This is
|
|
because the bitmask of CDB bytes allowed to be nonzero is incorrect.
|
|
|
|
When handling an unknown command, we don't care which command bytes
|
|
are nonzero. All the bits in the mask should be set, not just eight
|
|
of them.
|
|
|
|
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
|
|
CC: <Michal Nazarewicz <mina86@mina86.com>
|
|
Signed-off-by: Felipe Balbi <balbi@ti.com>
|
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
---
|
|
drivers/usb/gadget/f_mass_storage.c | 2 +-
|
|
drivers/usb/gadget/file_storage.c | 2 +-
|
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c
|
|
index 1a6f415..a5570b6 100644
|
|
--- a/drivers/usb/gadget/f_mass_storage.c
|
|
+++ b/drivers/usb/gadget/f_mass_storage.c
|
|
@@ -2182,7 +2182,7 @@ unknown_cmnd:
|
|
common->data_size_from_cmnd = 0;
|
|
sprintf(unknown, "Unknown x%02x", common->cmnd[0]);
|
|
reply = check_command(common, common->cmnd_size,
|
|
- DATA_DIR_UNKNOWN, 0xff, 0, unknown);
|
|
+ DATA_DIR_UNKNOWN, ~0, 0, unknown);
|
|
if (reply == 0) {
|
|
common->curlun->sense_data = SS_INVALID_COMMAND;
|
|
reply = -EINVAL;
|
|
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
|
|
index 17a7047..41056e2 100644
|
|
--- a/drivers/usb/gadget/file_storage.c
|
|
+++ b/drivers/usb/gadget/file_storage.c
|
|
@@ -2569,7 +2569,7 @@ static int do_scsi_command(struct fsg_dev *fsg)
|
|
fsg->data_size_from_cmnd = 0;
|
|
sprintf(unknown, "Unknown x%02x", fsg->cmnd[0]);
|
|
if ((reply = check_command(fsg, fsg->cmnd_size,
|
|
- DATA_DIR_UNKNOWN, 0xff, 0, unknown)) == 0) {
|
|
+ DATA_DIR_UNKNOWN, ~0, 0, unknown)) == 0) {
|
|
fsg->curlun->sense_data = SS_INVALID_COMMAND;
|
|
reply = -EINVAL;
|
|
}
|
|
--
|
|
1.7.7.6
|
|
|