summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-03-06 23:49:15 -0800
committerSascha Hauer <s.hauer@pengutronix.de>2019-03-11 07:55:45 +0100
commit8336f77c0bbe60a3cc4abf759fcba75475bae8f2 (patch)
treebffc70ac5711d8bb6ba76637e73eb9bc03b77741 /arch
parent935beb58ca8d00560ee5318532e5b08127ba8b48 (diff)
downloadbarebox-8336f77c0bbe60a3cc4abf759fcba75475bae8f2.tar.gz
barebox-8336f77c0bbe60a3cc4abf759fcba75475bae8f2.tar.xz
ARM: i.MX: bbu: Fix lseek error check in imx_bbu_internal_v2_write_nand_dbbt()
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-internal.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c
index 188369fe34..1104303ff0 100644
--- a/arch/arm/mach-imx/imx-bbu-internal.c
+++ b/arch/arm/mach-imx/imx-bbu-internal.c
@@ -330,10 +330,12 @@ static int imx_bbu_internal_v2_write_nand_dbbt(struct imx_internal_bbu_handler *
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;
}