From: Alan Cox We currently stuff a truncated size into the geometry logic and return the result which can produce bizarre reports for a 4Tb array. Since that mapping logic isn't useful for disks that big don't try and map this way at all. Signed-off-by: Alan Cox Cc: James Bottomley Signed-off-by: Andrew Morton --- drivers/scsi/scsicam.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/scsi/scsicam.c~bogus-disk-geometry-on-large-disks drivers/scsi/scsicam.c --- devel/drivers/scsi/scsicam.c~bogus-disk-geometry-on-large-disks 2006-05-27 23:28:36.000000000 -0700 +++ devel-akpm/drivers/scsi/scsicam.c 2006-05-27 23:28:36.000000000 -0700 @@ -68,7 +68,7 @@ int scsicam_bios_param(struct block_devi (unsigned int *)ip + 0, (unsigned int *)ip + 1); kfree(p); - if (ret == -1) { + if (ret == -1 && capacity < (1ULL << 32)) { /* pick some standard mapping with at most 1024 cylinders, and at most 62 sectors per track - this works up to 7905 MB */ _