On Sun, Sep 30 2007 at 22:17 +0200, Boaz Harrosh <bharrosh@xxxxxxxxxxx> wrote: > gdth_execute() will issue an internal, none scsi-standard commands > onto __gdth_queuecommand(). Since it is not recommended to set > struct scsi_cmnd IO members in llds, gdth now uses internal IO > members for IO. In the case of gdth_execute() these members will be > set properly. In case the command was issued from scsi-ml > (by gdth_queuecommand) they will be set from scsi IO accessors. > > * define gdth IO accessors and use them throughout the driver. > * use an sg-of-one in gdth_execute() and fix gdth_special_cmd() > accordingly. > * Clean the not use_sg code path and company > > Signed-off-by Boaz Harrosh <bharrosh@xxxxxxxxxxx> OK My usual bug in this one. I woke up in the middle of the night with this in my head. diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c --- a/drivers/scsi/gdth.c +++ b/drivers/scsi/gdth.c @@ -517,4 +517,5 @@ int __gdth_execute(struct scsi_device *sdev, gdth_cmd_str *gdtcmd, char *cmnd, sg_init_one(&one_sg, gdtcmd, sizeof(*gdtcmd)); gdth_set_sglist(scp, &one_sg); + gdth_set_sg_count(scp, 1); gdth_set_bufflen(scp, sizeof(*gdtcmd)); scp->cmd_len = 12; I will resend the patch as reply to this one 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