Each member in data integrity field tuple is big-endian.  But the
endianness of the values being compared with these members are not
annotated.  So this fixes these sparse warnings.

Reported-by: kbuild test robot <[email protected]>
Signed-off-by: Akinobu Mita <[email protected]>
Cc: Fengguang Wu <[email protected]>
Cc: "James E.J. Bottomley" <[email protected]>
Cc: Douglas Gilbert <[email protected]>
Cc: "Martin K. Petersen" <[email protected]>
Cc: [email protected]
---
 drivers/scsi/scsi_debug.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
index a21322d..80b8b10 100644
--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -1745,25 +1745,22 @@ static int do_device_access(struct scsi_cmnd *scmd,
        return ret;
 }
 
-static u16 dif_compute_csum(const void *buf, int len)
+static __be16 dif_compute_csum(const void *buf, int len)
 {
-       u16 csum;
+       __be16 csum;
 
-       switch (scsi_debug_guard) {
-       case 1:
-               csum = ip_compute_csum(buf, len);
-               break;
-       case 0:
+       if (scsi_debug_guard)
+               csum = (__force __be16)ip_compute_csum(buf, len);
+       else
                csum = cpu_to_be16(crc_t10dif(buf, len));
-               break;
-       }
+
        return csum;
 }
 
 static int dif_verify(struct sd_dif_tuple *sdt, const void *data,
                      sector_t sector, u32 ei_lba)
 {
-       u16 csum = dif_compute_csum(data, scsi_debug_sector_size);
+       __be16 csum = dif_compute_csum(data, scsi_debug_sector_size);
 
        if (sdt->guard_tag != csum) {
                pr_err("%s: GUARD check failed on sector %lu rcvd 0x%04x, data 
0x%04x\n",
@@ -1841,7 +1838,7 @@ static int prot_verify_read(struct scsi_cmnd *SCpnt, 
sector_t start_sec,
                sector = start_sec + i;
                sdt = dif_store(sector);
 
-               if (sdt->app_tag == 0xffff)
+               if (sdt->app_tag == cpu_to_be16(0xffff))
                        continue;
 
                ret = dif_verify(sdt, fake_store(sector), sector, ei_lba);
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to