]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: sd: Fix capacity calculation with 32-bit sector_t
authorMartin K. Petersen <martin.petersen@oracle.com>
Tue, 4 Apr 2017 14:42:30 +0000 (10:42 -0400)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 7 Apr 2017 21:07:16 +0000 (17:07 -0400)
commitf250635cb4b60e7077a267ae643f941f30e37971
treee90a0cc26a6aabfbcb4cc8b064ea6e4575aca206
parent5acae330dbbde910449d4df31b9dab4c475326cf
scsi: sd: Fix capacity calculation with 32-bit sector_t

We previously made sure that the reported disk capacity was less than
0xffffffff blocks when the kernel was not compiled with large sector_t
support (CONFIG_LBDAF). However, this check assumed that the capacity
was reported in units of 512 bytes.

Add a sanity check function to ensure that we only enable disks if the
entire reported capacity can be expressed in terms of sector_t.

Cc: <stable@vger.kernel.org>
Reported-by: Steve Magnani <steve.magnani@digidescorp.com>
Cc: Bart Van Assche <Bart.VanAssche@sandisk.com>
Reviewed-by: Bart Van Assche <Bart.VanAssche@sandisk.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/sd.c