Stefan Richter wrote:
On 4 May, Stefan Richter wrote:
Boaz Harrosh wrote:
cmd->cmd_len is now guarantied to be set properly at all cases.
And some commands you want to support will not be set correctly
by COMMAND_SIZE().
...
--- linux.orig/drivers/ieee1394/sbp2.c
+++ linux/drivers/ieee1394/sbp2.c
...
memset(orb->cdb, 0, 12);
if you are at it?
- memset(orb->cdb, 0, 12);
+ memset(orb->cdb, 0, sizeof(orb->cdb));
- memcpy(orb->cdb, scsi_cmd, COMMAND_SIZE(*scsi_cmd));
+ memcpy(orb->cdb, SCpnt->cmnd, SCpnt->cmd_len);
...
Wait a minute...
drivers/ieee1394/sbp2.[ch] and drivers/firewire/fw-sbp2.c hardwire the
maximum size of the command descriptor block (command_block field in the
command block ORB as per SBP-2 clause 5.1.2) to 12 bytes.
We need to use BLK_MAX_CDB there, don't we?
(Besides, we should keep an eye on unit_characteristics.ORB_size as per
SBP-2 clause 7.4.8, but that's another story.)
I'm not sure what you mean. But orb->cdb is 12 bytes, and setting max_cmd_len in
host template insures midlayer will never send a command bigger then that. So
->cmd_len will never be bigger then host->max_cmd_len. BLK_MAX_CDB should not
be used here.
But I don't see .max_cmd_len set in this file, is it set elsewhere?
Boaz
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html