On Thu, Mar 21, 2024 at 11:43:37PM +0300, Sergey Shtylyov wrote: > When isd200_scsi_to_ata() emulates the SCSI READ CAPACITY command, the > capacity local variable is needlessly typed as *unsigned long* -- which > is 32-bit type on the 32-bit arches and 64-bit type on the 64-bit arches; > this variable's value should always fit into 32 bits for both the ATA and > the SCSI capacity data... > > While at it, arrange the local variable declarations in the reverse Xmas > tree order... > > Found by Linux Verification Center (linuxtesting.org) with the SVACE static > analysis tool. > > Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxx> > > --- > drivers/usb/storage/isd200.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Index: usb/drivers/usb/storage/isd200.c > =================================================================== > --- usb.orig/drivers/usb/storage/isd200.c > +++ usb/drivers/usb/storage/isd200.c > @@ -1283,8 +1283,8 @@ static int isd200_scsi_to_ata(struct scs > > case READ_CAPACITY: > { > - unsigned long capacity; > struct read_capacity_data readCapacityData; > + u32 capacity; This is a bit peculiar. Why bother to change the type of the capacity variable without also changing the types of lba and blockCount at the start of the routine? Alan Stern