summaryrefslogtreecommitdiffstats
path: root/drivers/s390/char
diff options
context:
space:
mode:
authorPeter Oberparleiter <oberpar@linux.ibm.com>2019-03-22 16:01:17 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2019-03-29 07:23:44 +0100
commit2cc9637ce825f3a9f51f8f78af7474e9e85bfa5f (patch)
treef50fa36ac4aa5167bce711f9f18c270cc85704c4 /drivers/s390/char
parent2d4ea4b95cae3133de6b18ec5d5a42ee824fa0ef (diff)
downloadlinux-2cc9637ce825f3a9f51f8f78af7474e9e85bfa5f.tar.bz2
s390/dasd: Fix capacity calculation for large volumes
The DASD driver incorrectly limits the maximum number of blocks of ECKD DASD volumes to 32 bit numbers. Volumes with a capacity greater than 2^32-1 blocks are incorrectly recognized as smaller volumes. This results in the following volume capacity limits depending on the formatted block size: BLKSIZE MAX_GB MAX_CYL 512 2047 5843492 1024 4095 8676701 2048 8191 13634816 4096 16383 23860929 The same problem occurs when a volume with more than 17895697 cylinders is accessed in raw-track-access mode. Fix this problem by adding an explicit type cast when calculating the maximum number of blocks. Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com> Reviewed-by: Stefan Haberland <sth@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/char')
0 files changed, 0 insertions, 0 deletions