summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-03-06 23:49:14 -0800
committerSascha Hauer <s.hauer@pengutronix.de>2019-03-11 07:55:45 +0100
commit935beb58ca8d00560ee5318532e5b08127ba8b48 (patch)
treed4590923fb254390749154f9c8f1a3d248b2ebc1 /arch
parent98ceb5ff9198d47b5f20762feeea482bc945d747 (diff)
downloadbarebox-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.c8
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;
}