[SCSI] hptiop: fix header.context usage
authorJames Bottomley <James.Bottomley@HansenPartnership.com>
Sun, 30 Mar 2008 17:36:26 +0000 (12:36 -0500)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Mon, 7 Apr 2008 17:19:08 +0000 (12:19 -0500)
header.context is a 64 bit field, but it's deliberately split into
context and context_hi32.  Thus cpu_to_le64 assignments are wrong on
this.  Replace them with the correct settings of both the low and high
words.

Cc: HighPoint Linux Team <linux@highpoint-tech.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/hptiop.c

index 44dccf2..beecda9 100644 (file)
@@ -338,7 +338,8 @@ static int iop_get_config_mv(struct hptiop_hba *hba,
        req->header.size =
                cpu_to_le32(sizeof(struct hpt_iop_request_get_config));
        req->header.result = cpu_to_le32(IOP_RESULT_PENDING);
-       req->header.context = cpu_to_le64(IOP_REQUEST_TYPE_GET_CONFIG<<5);
+       req->header.context = cpu_to_le32(IOP_REQUEST_TYPE_GET_CONFIG<<5);
+       req->header.context_hi32 = 0;
 
        if (iop_send_sync_request_mv(hba, 0, 20000)) {
                dprintk("Get config send cmd failed\n");
@@ -392,7 +393,8 @@ static int iop_set_config_mv(struct hptiop_hba *hba,
        req->header.size =
                cpu_to_le32(sizeof(struct hpt_iop_request_set_config));
        req->header.result = cpu_to_le32(IOP_RESULT_PENDING);
-       req->header.context = cpu_to_le64(IOP_REQUEST_TYPE_SET_CONFIG<<5);
+       req->header.context = cpu_to_le32(IOP_REQUEST_TYPE_SET_CONFIG<<5);
+       req->header.context_hi32 = 0;
 
        if (iop_send_sync_request_mv(hba, 0, 20000)) {
                dprintk("Set config send cmd failed\n");