Hello Vijaya Mohan Guvva,
The patch 4e88a72d1574: "[SCSI] bfa: Firmware patch simplification"
from Nov 21, 2013, leads to the following Smatch warning:
drivers/scsi/bfa/bfa_ioc.c:6859 bfa_flash_status_read()
warn: unsigned 'status' is never less than zero.
drivers/scsi/bfa/bfa_ioc.c
6851 bfa_flash_status_read(void __iomem *pci_bar)
6852 {
6853 union bfa_flash_dev_status_reg_u dev_status;
6854 u32 status;
6855 u32 ret_status;
6856 int i;
6857
6858 status = bfa_flash_fifo_flush(pci_bar);
6859 if (status < 0)
^^^^^^^^^^
"status" is unsigned.
6860 return status;
There are some other Smatch warnings as well:
drivers/scsi/bfa/bfa_ioc.c:3882 bfa_sfp_show_comp() error: memcpy() 'des' too
small (64 vs 248)
This is not a real bug, it's just an over-sight. The code uses:
u8 *des = (u8 *) &(sfp->sfpmem->srlid_base);
but the intent was:
void *dest = &sfp->sfpmem;
The two assignments are equivalent in terms of pointer math, but we are
refering to the whole struct and not the first member.
The other warnings are real:
drivers/scsi/bfa/bfa_ioc.c:6859 bfa_flash_status_read() warn: unsigned 'status'
is never less than zero.
drivers/scsi/bfa/bfa_ioc.c:6881 bfa_flash_status_read() warn: unsigned 'status'
is never less than zero.
drivers/scsi/bfa/bfa_ioc.c:6917 bfa_flash_read_start() warn: unsigned 'status'
is never less than zero.
drivers/scsi/bfa/bfa_ioc.c:7043 bfa_flash_raw_read() warn: unsigned 'status' is
never less than zero.
regards,
dan carpenter
--
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