summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/csiostor/csio_mb.c
diff options
context:
space:
mode:
authorVarun Prakash2018-08-11 17:44:08 +0200
committerMartin K. Petersen2018-08-27 18:26:10 +0200
commit68bdc630721c40e908d22cffe07b5ca225a69f6e (patch)
tree1cbaf29406a0f091d3922e8f345fe4c2de7e56b8 /drivers/scsi/csiostor/csio_mb.c
parentscsi: csiostor: add a check for NULL pointer after kmalloc() (diff)
downloadkernel-qcow2-linux-68bdc630721c40e908d22cffe07b5ca225a69f6e.tar.gz
kernel-qcow2-linux-68bdc630721c40e908d22cffe07b5ca225a69f6e.tar.xz
kernel-qcow2-linux-68bdc630721c40e908d22cffe07b5ca225a69f6e.zip
scsi: csiostor: fix incorrect port capabilities
- use be32_to_cpu() instead of ntohs() for 32 bit port capabilities. - add a new function fwcaps32_to_caps16() to convert 32 bit port capabilities to 16 bit port capabilities. Signed-off-by: Varun Prakash <varun@chelsio.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/csiostor/csio_mb.c')
-rw-r--r--drivers/scsi/csiostor/csio_mb.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/scsi/csiostor/csio_mb.c b/drivers/scsi/csiostor/csio_mb.c
index c026417269c3..6f13673d6aa0 100644
--- a/drivers/scsi/csiostor/csio_mb.c
+++ b/drivers/scsi/csiostor/csio_mb.c
@@ -368,7 +368,7 @@ csio_mb_port(struct csio_hw *hw, struct csio_mb *mbp, uint32_t tmo,
FW_CMD_LEN16_V(sizeof(*cmdp) / 16));
if (fw_caps == FW_CAPS16)
- cmdp->u.l1cfg.rcap = cpu_to_be32(fc);
+ cmdp->u.l1cfg.rcap = cpu_to_be32(fwcaps32_to_caps16(fc));
else
cmdp->u.l1cfg32.rcap32 = cpu_to_be32(fc);
}
@@ -395,8 +395,8 @@ csio_mb_process_read_port_rsp(struct csio_hw *hw, struct csio_mb *mbp,
*pcaps = fwcaps16_to_caps32(ntohs(rsp->u.info.pcap));
*acaps = fwcaps16_to_caps32(ntohs(rsp->u.info.acap));
} else {
- *pcaps = ntohs(rsp->u.info32.pcaps32);
- *acaps = ntohs(rsp->u.info32.acaps32);
+ *pcaps = be32_to_cpu(rsp->u.info32.pcaps32);
+ *acaps = be32_to_cpu(rsp->u.info32.acaps32);
}
}
}