提交 51d648af 编写于 作者: A Akinobu Mita 提交者: James Bottomley

[SCSI] scsi_debug: fix sparse warnings related to data integrity field

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: Nkbuild test robot <fengguang.wu@intel.com>
Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
Acked-by: NMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
上级 68aee7ba
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册