[SCSI] megaraid_sas: tape drive support fix
authorYang, Bo <Bo.Yang@lsi.com>
Tue, 6 Oct 2009 20:12:21 +0000 (14:12 -0600)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 29 Oct 2009 17:03:17 +0000 (13:03 -0400)
Add the Tape drive fix to the megaraid_sas driver: If the command is
for the tape device, set the FW pthru timeout to the os layer timeout
value.

Signed-off-by Bo Yang<bo.yang@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/megaraid/megaraid_sas.c

index a39addc3a596625ad03b9c0dbe0183c610d5194c..6fd1e1796029729c0583e141d155fa04acb389d0 100644 (file)
@@ -686,6 +686,17 @@ megasas_build_dcdb(struct megasas_instance *instance, struct scsi_cmnd *scp,
 
        memcpy(pthru->cdb, scp->cmnd, scp->cmd_len);
 
+       /*
+       * If the command is for the tape device, set the
+       * pthru timeout to the os layer timeout value.
+       */
+       if (scp->device->type == TYPE_TAPE) {
+               if ((scp->request->timeout / HZ) > 0xFFFF)
+                       pthru->timeout = 0xFFFF;
+               else
+                       pthru->timeout = scp->request->timeout / HZ;
+       }
+
        /*
         * Construct SGL
         */