summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-10-14 22:34:20 +0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-10-23 20:42:20 +0400
commit520a2c2741747062e75f91cd0faddb564fbc64d2 (patch)
treeee432a78dd07631a4df63abe4ae2958d2c18607e
parenta8659597bf744b0f8d2560e2a734b5c941569e0e (diff)
downloadlinux-520a2c2741747062e75f91cd0faddb564fbc64d2.tar.xz
[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>
-rw-r--r--drivers/scsi/sd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 7e22aa7b8b8a..7ba70bef8b5d 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1436,7 +1436,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));