Messages in this thread Patch in this message | | | From | "H. Peter Anvin" <> | Subject | [PATCH 1/2] scsi: fix computation of the full size of the device | Date | Tue, 14 Oct 2008 11:34:20 -0700 |
| |
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> --- drivers/scsi/sd.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index a7b53be..151fc68 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -1438,7 +1438,7 @@ got_data: { 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)); -- 1.6.0.2
| |