diff options
author | Jean-Jacques Hiblot | 2017-06-09 16:45:18 +0200 |
---|---|---|
committer | Simon Glass | 2017-09-11 21:43:58 -0600 |
commit | 5fe7702eccf1bae5b10f0309cef03e02bfdfa6ef (patch) | |
tree | 1c32f209698ac10b795e3a61f0977cf65da1aee7 /drivers/block/sandbox.c | |
parent | c98ac3487e413c71e5d36322ef3324b21c6f60f9 (diff) |
blk: dm: make blk_create_device() take a number of block instead of a size
There is an overflow problem when taking the size instead of the number
of blocks in blk_create_device(). This results in a wrong device size: the
device apparent size is its real size modulo 4GB.
Using the number of blocks instead of the device size fixes the problem and
is more coherent with the internals of the block layer.
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/block/sandbox.c')
-rw-r--r-- | drivers/block/sandbox.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/sandbox.c b/drivers/block/sandbox.c index 34d1c638bc7..98df6b33b6e 100644 --- a/drivers/block/sandbox.c +++ b/drivers/block/sandbox.c @@ -129,7 +129,7 @@ int host_dev_bind(int devnum, char *filename) } ret = blk_create_device(gd->dm_root, "sandbox_host_blk", str, IF_TYPE_HOST, devnum, 512, - os_lseek(fd, 0, OS_SEEK_END), &dev); + os_lseek(fd, 0, OS_SEEK_END) / 512, &dev); if (ret) goto err_file; ret = device_probe(dev); |