mirror of
https://github.com/torvalds/linux.git
synced 2026-06-09 15:12:59 +02:00
USB: gadget: storage gadgets send wrong error code for unknown commands
commit c85dcdac58 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a8eaeff79e
commit
06200304e7
|
|
@ -2187,7 +2187,7 @@ static int do_scsi_command(struct fsg_common *common)
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -2553,7 +2553,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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user