[SCSI] mptfusion: Added MPI_SCSIIO_CONTROL_HEADOFQ priority
authorKashyap, Desai <kashyap.desai@lsi.com>
Wed, 16 Dec 2009 13:31:13 +0000 (19:01 +0530)
committerJames Bottomley <James.Bottomley@suse.de>
Mon, 18 Jan 2010 16:48:10 +0000 (10:48 -0600)
There is a 'ioprio' field in the BIO and the Request structure.
check this priority field and set MPI_SCSIIO_CONTROL_HEADOFQ
to pass down I/O priority.
An enhancement to the LSI Disk Array Controller firmware is being
developed to look at the Head Of Queue bit to allow I/Os with the HOQ bit
set to be processed before I/Os which do not have the HOQ bit set.
In order to set the HOQ bit, the mpt fusion driver  needs to look at the
'ioprio' field in the request structure associated with the scsi command.

Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/message/fusion/mptscsih.c

index 57752751712bb087127f8ab8ccbe1a38252d8bc5..8128d3095f9fe60532edbb2d38bc6a9697d5a7ec 100644 (file)
@@ -1438,9 +1438,14 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
            && (vdevice->vtarget->tflags & MPT_TARGET_FLAGS_Q_YES)
            && (SCpnt->device->tagged_supported)) {
                scsictl = scsidir | MPI_SCSIIO_CONTROL_SIMPLEQ;
-       } else {
+               if (SCpnt->request && SCpnt->request->ioprio) {
+                       if (((SCpnt->request->ioprio & 0x7) == 1) ||
+                               !(SCpnt->request->ioprio & 0x7))
+                               scsictl |= MPI_SCSIIO_CONTROL_HEADOFQ;
+               }
+       } else
                scsictl = scsidir | MPI_SCSIIO_CONTROL_UNTAGGED;
-       }
+
 
        /* Use the above information to set up the message frame
         */