diff options
Diffstat (limited to 'drivers/ata/libata-scsi.c')
-rw-r--r-- | drivers/ata/libata-scsi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index e9364434182c..7d41afe8ccbc 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
@@ -2792,8 +2792,9 @@ static inline int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, | |||
2792 | { | 2792 | { |
2793 | int rc = 0; | 2793 | int rc = 0; |
2794 | 2794 | ||
2795 | if (unlikely(!scmd->cmd_len)) { | 2795 | if (unlikely(!scmd->cmd_len || scmd->cmd_len > dev->cdb_len)) { |
2796 | ata_dev_printk(dev, KERN_WARNING, "WARNING: zero len CDB\n"); | 2796 | DPRINTK("bad CDB len=%u, max=%u\n", |
2797 | scmd->cmd_len, dev->cdb_len); | ||
2797 | scmd->result = DID_ERROR << 16; | 2798 | scmd->result = DID_ERROR << 16; |
2798 | done(scmd); | 2799 | done(scmd); |
2799 | return 0; | 2800 | return 0; |