The patch titled cciss: Fix warnings (and bug on 1TB discs) has been added to the -mm tree. Its filename is cciss-fix-warnings-and-bug-on-1tb-discs.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: cciss: Fix warnings (and bug on 1TB discs) From: Matthew Wilcox <matthew@xxxxxx> CCISS was producing warnings about shifts being greater than the size of the type and pointers being of incompatible type. Turns out this is because it's calling do_div on a 32-bit quantity. Upon further investigation, the sector_t total_size is being assigned to an int, and then we're calling do_div on that int. Obviously, sector_div is called for here, and I took the chance to refactor the code a little. Signed-off-by: Matthew Wilcox <matthew@xxxxxx> Acked-by: Mike Miller <mike.miller@xxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/block/cciss.c | 22 +++++++++------------- 1 files changed, 9 insertions(+), 13 deletions(-) diff -puN drivers/block/cciss.c~cciss-fix-warnings-and-bug-on-1tb-discs drivers/block/cciss.c --- a/drivers/block/cciss.c~cciss-fix-warnings-and-bug-on-1tb-discs +++ a/drivers/block/cciss.c @@ -1923,7 +1923,6 @@ static void cciss_geometry_inquiry(int c { int return_code; unsigned long t; - unsigned long rem; memset(inq_buff, 0, sizeof(InquiryData_struct)); if (withirq) @@ -1939,26 +1938,23 @@ static void cciss_geometry_inquiry(int c printk(KERN_WARNING "cciss: reading geometry failed, volume " "does not support reading geometry\n"); - drv->block_size = block_size; - drv->nr_blocks = total_size; drv->heads = 255; drv->sectors = 32; // Sectors per track - t = drv->heads * drv->sectors; - drv->cylinders = total_size; - rem = do_div(drv->cylinders, t); } else { - drv->block_size = block_size; - drv->nr_blocks = total_size; drv->heads = inq_buff->data_byte[6]; drv->sectors = inq_buff->data_byte[7]; drv->cylinders = (inq_buff->data_byte[4] & 0xff) << 8; drv->cylinders += inq_buff->data_byte[5]; drv->raid_level = inq_buff->data_byte[8]; - t = drv->heads * drv->sectors; - if (t > 1) { - drv->cylinders = total_size; - rem = do_div(drv->cylinders, t); - } + } + drv->block_size = block_size; + drv->nr_blocks = total_size; + t = drv->heads * drv->sectors; + if (t > 1) { + unsigned rem = sector_div(total_size, t); + if (rem) + total_size++; + drv->cylinders = total_size; } } else { /* Get geometry failed */ printk(KERN_WARNING "cciss: reading geometry failed\n"); _ Patches currently in -mm which might be from matthew@xxxxxx are origin.patch cciss-fix-warnings-and-bug-on-1tb-discs.patch git-dvb.patch revert-gregkh-pci-pci-check-that-mwi-bit-really-did-get-set.patch git-scsi-misc.patch hid-core-big-endian-fix-fix.patch make-sure-nobodys-leaking-resources.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html