diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2019-03-06 23:49:14 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-03-11 07:55:45 +0100 |
commit | 935beb58ca8d00560ee5318532e5b08127ba8b48 (patch) | |
tree | d4590923fb254390749154f9c8f1a3d248b2ebc1 /arch | |
parent | 98ceb5ff9198d47b5f20762feeea482bc945d747 (diff) | |
download | barebox-935beb58ca8d00560ee5318532e5b08127ba8b48.tar.gz barebox-935beb58ca8d00560ee5318532e5b08127ba8b48.tar.xz |
ARM: i.MX: bbu: Fix lseek error check in imx_bbu_external_nand_update()
Don't use 'int' to store lseek()'s return value to avoid problems with
large seek offsets. While at it, make sure to populate return error
code from 'errno'.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-imx/imx-bbu-external-nand.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/mach-imx/imx-bbu-external-nand.c b/arch/arm/mach-imx/imx-bbu-external-nand.c index 440785ab7a..fa43d2e8dc 100644 --- a/arch/arm/mach-imx/imx-bbu-external-nand.c +++ b/arch/arm/mach-imx/imx-bbu-external-nand.c @@ -147,10 +147,12 @@ static int imx_bbu_external_nand_update(struct bbu_handler *handler, struct bbu_ goto out; if (ret) { - ret = lseek(fd, offset + blocksize, SEEK_SET); - if (ret < 0) - goto out; offset += blocksize; + if (lseek(fd, offset, SEEK_SET) != offset) { + ret = -errno; + goto out; + } + continue; } |