]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Apr 2017 07:32:39 +0000 (09:32 +0200)
commit53204334cca0ac11e58b03365b16c435694c6770
tree44be31a39c6ec94ccbaa1c6c26178f00b9eeef3b
parent24c01b369765d88ba50206a3fd02790d98e5c57c
scsi: sd: Fix capacity calculation with 32-bit sector_t

commit 7c856152cb92f8eee2df29ef325a1b1f43161aff upstream.

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.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/sd.c