summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerald Schaefer <gerald.schaefer@de.ibm.com>2017-01-30 15:52:14 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2017-02-03 13:50:17 +0100
commita63f53e34db8b49675448d03ae324f6c5bc04fe6 (patch)
tree0362bf723be3650de766b75ea94ed172cf9a2930
parentba21d0ea218983f269f957de267ca62fdbf96be3 (diff)
downloadlinux-stable-a63f53e34db8b49675448d03ae324f6c5bc04fe6.tar.gz
linux-stable-a63f53e34db8b49675448d03ae324f6c5bc04fe6.tar.bz2
linux-stable-a63f53e34db8b49675448d03ae324f6c5bc04fe6.zip
s390/dcssblk: fix device size calculation in dcssblk_direct_access()
Since commit dd22f551 "block: Change direct_access calling convention", the device size calculation in dcssblk_direct_access() is off-by-one. This results in bdev_direct_access() always returning -ENXIO because the returned value is not page aligned. Fix this by adding 1 to the dev_sz calculation. Fixes: dd22f551 ("block: Change direct_access calling convention") Cc: <stable@vger.kernel.org> # 4.0+ Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--drivers/s390/block/dcssblk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index 9d66b4fb174b..415d10a67b7a 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -892,7 +892,7 @@ dcssblk_direct_access (struct block_device *bdev, sector_t secnum,
dev_info = bdev->bd_disk->private_data;
if (!dev_info)
return -ENODEV;
- dev_sz = dev_info->end - dev_info->start;
+ dev_sz = dev_info->end - dev_info->start + 1;
offset = secnum * 512;
*kaddr = (void *) dev_info->start + offset;
*pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset), PFN_DEV);