From f812b56b567d0deea8c4b1472865662d4c4ea19c Mon Sep 17 00:00:00 2001 From: Nicholas Bellinger Date: Sun, 6 May 2012 12:59:45 -0700 Subject: [PATCH] --- yaml --- r: 302415 b: refs/heads/master c: 7b4deef5d9a1fa74ccfbd07b4cfe795ee18fceca h: refs/heads/master i: 302413: 88bb6081d82b083f365582091f737d06b2a18fc4 302411: 8c1e3e2b93f00847cdf699b61c51e57a9aa495a6 302407: 960ec44a84e7f85bc29f0d77d934678d12f13cab 302399: 90ee5a08b9384031cedc75e357b77b23942a133c v: v3 --- [refs] | 2 +- trunk/drivers/target/target_core_transport.c | 21 ++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index a5cceafe06a0..00d14b26b223 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d5dc28eb92f2a2305a02cb3a5f1ed36542d47512 +refs/heads/master: 7b4deef5d9a1fa74ccfbd07b4cfe795ee18fceca diff --git a/trunk/drivers/target/target_core_transport.c b/trunk/drivers/target/target_core_transport.c index 5c06b87a3114..a10d7847f037 100644 --- a/trunk/drivers/target/target_core_transport.c +++ b/trunk/drivers/target/target_core_transport.c @@ -2973,12 +2973,21 @@ static int transport_generic_cmd_sequencer( cmd->data_length = size; } - if (cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB && - (sectors > dev->se_sub_dev->se_dev_attrib.fabric_max_sectors || - sectors > dev->se_sub_dev->se_dev_attrib.max_sectors)) { - printk_ratelimited(KERN_ERR "SCSI OP %02xh with too big sectors %u\n", - cdb[0], sectors); - goto out_invalid_cdb_field; + if (cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB) { + if (sectors > su_dev->se_dev_attrib.fabric_max_sectors) { + printk_ratelimited(KERN_ERR "SCSI OP %02xh with too" + " big sectors %u exceeds fabric_max_sectors:" + " %u\n", cdb[0], sectors, + su_dev->se_dev_attrib.fabric_max_sectors); + goto out_invalid_cdb_field; + } + if (sectors > su_dev->se_dev_attrib.hw_max_sectors) { + printk_ratelimited(KERN_ERR "SCSI OP %02xh with too" + " big sectors %u exceeds backend hw_max_sectors:" + " %u\n", cdb[0], sectors, + su_dev->se_dev_attrib.hw_max_sectors); + goto out_invalid_cdb_field; + } } /* reject any command that we don't have a handler for */