[SCSI] sd: fix computation of the full size of the device
When computing the full size of the device, we need to cast sdkp->capacity before shifting, since in some configurations sector_t can be a 32-bit number. Also, change ffz(~x) to the more idiomatic ilog2(x). Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
a8659597bf
commit
520a2c2741
@ -1436,7 +1436,7 @@ sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer)
|
||||
|
||||
{
|
||||
char cap_str_2[10], cap_str_10[10];
|
||||
u64 sz = sdkp->capacity << ffz(~sector_size);
|
||||
u64 sz = (u64)sdkp->capacity << ilog2(sector_size);
|
||||
|
||||
string_get_size(sz, STRING_UNITS_2, cap_str_2,
|
||||
sizeof(cap_str_2));
|
||||
|
Loading…
Reference in New Issue
Block a user