diff options
Diffstat (limited to 'drivers/scsi/scsicam.c')
| -rw-r--r-- | drivers/scsi/scsicam.c | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/drivers/scsi/scsicam.c b/drivers/scsi/scsicam.c index b78354fc4b17..cd68a66c7bb3 100644 --- a/drivers/scsi/scsicam.c +++ b/drivers/scsi/scsicam.c @@ -57,6 +57,7 @@ EXPORT_SYMBOL(scsi_bios_ptable);  int scsicam_bios_param(struct block_device *bdev, sector_t capacity, int *ip)  {  	unsigned char *p; +	u64 capacity64 = capacity;	/* Suppress gcc warning */  	int ret;  	p = scsi_bios_ptable(bdev); @@ -68,7 +69,7 @@ int scsicam_bios_param(struct block_device *bdev, sector_t capacity, int *ip)  			       (unsigned int *)ip + 0, (unsigned int *)ip + 1);  	kfree(p); -	if (ret == -1) { +	if (ret == -1 && capacity64 < (1ULL << 32)) {  		/* pick some standard mapping with at most 1024 cylinders,  		   and at most 62 sectors per track - this works up to  		   7905 MB */ | 
