mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-13 20:33:15 +00:00
[SCSI] avoid overflows in disk size calculations
Be more careful about doing the arithmetic in the non-LBD case. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
d578a4258b
commit
7a691bd341
@ -1253,14 +1253,13 @@ got_data:
|
||||
* Jacques Gelinas (Jacques@solucorp.qc.ca)
|
||||
*/
|
||||
int hard_sector = sector_size;
|
||||
sector_t sz = sdkp->capacity * (hard_sector/256);
|
||||
sector_t sz = (sdkp->capacity/2) * (hard_sector/256);
|
||||
request_queue_t *queue = sdp->request_queue;
|
||||
sector_t mb;
|
||||
sector_t mb = sz;
|
||||
|
||||
blk_queue_hardsect_size(queue, hard_sector);
|
||||
/* avoid 64-bit division on 32-bit platforms */
|
||||
mb = sz >> 1;
|
||||
sector_div(sz, 1250);
|
||||
sector_div(sz, 625);
|
||||
mb -= sz - 974;
|
||||
sector_div(mb, 1950);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user