Message ID | 20201117185031.129939-1-tyreld@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | [1/3] ibmvfc: byte swap login_buf.resp values in attribute show functions | expand |
Tyrel, > Both ibmvfc_show_host_(capabilities|npiv_version) functions retrieve > values from vhost->login_buf.resp buffer. This is the MAD response > buffer from the VIOS and as such any multi-byte non-string values are in > big endian format. Applied 1-3 to 5.11/scsi-staging, thanks! -- Martin K. Petersen Oracle Linux Engineering
On Tue, 17 Nov 2020 12:50:29 -0600, Tyrel Datwyler wrote: > Both ibmvfc_show_host_(capabilities|npiv_version) functions retrieve > values from vhost->login_buf.resp buffer. This is the MAD response > buffer from the VIOS and as such any multi-byte non-string values are in > big endian format. > > Byte swap these values to host cpu endian format for better human > readability. Applied to 5.11/scsi-queue, thanks! [1/3] scsi: ibmvfc: Byte swap login_buf.resp values in attribute show functions https://git.kernel.org/mkp/scsi/c/61bdb4eec8d1 [2/3] scsi: ibmvfc: Remove trailing semicolon https://git.kernel.org/mkp/scsi/c/4e0716199ab6 [3/3] scsi: ibmvfc: Use correlation token to tag commands https://git.kernel.org/mkp/scsi/c/2aa0102c6688 -- Martin K. Petersen Oracle Linux Engineering
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index 070cf516b98f..01fe65de9086 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c @@ -3025,7 +3025,7 @@ static ssize_t ibmvfc_show_host_npiv_version(struct device *dev, { struct Scsi_Host *shost = class_to_shost(dev); struct ibmvfc_host *vhost = shost_priv(shost); - return snprintf(buf, PAGE_SIZE, "%d\n", vhost->login_buf->resp.version); + return snprintf(buf, PAGE_SIZE, "%d\n", be32_to_cpu(vhost->login_buf->resp.version)); } static ssize_t ibmvfc_show_host_capabilities(struct device *dev, @@ -3033,7 +3033,7 @@ static ssize_t ibmvfc_show_host_capabilities(struct device *dev, { struct Scsi_Host *shost = class_to_shost(dev); struct ibmvfc_host *vhost = shost_priv(shost); - return snprintf(buf, PAGE_SIZE, "%llx\n", vhost->login_buf->resp.capabilities); + return snprintf(buf, PAGE_SIZE, "%llx\n", be64_to_cpu(vhost->login_buf->resp.capabilities)); } /**
Both ibmvfc_show_host_(capabilities|npiv_version) functions retrieve values from vhost->login_buf.resp buffer. This is the MAD response buffer from the VIOS and as such any multi-byte non-string values are in big endian format. Byte swap these values to host cpu endian format for better human readability. Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com> --- drivers/scsi/ibmvscsi/ibmvfc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)