diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2019-04-08 10:17:15 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-04-08 10:17:15 +0200 |
commit | d44e3d642171fa506dcc5a6c1b2babe6b4b813bf (patch) | |
tree | f07ca08305b99b0c01ddd4775fd15b38ed7d0a67 /arch | |
parent | c239b65fc2bc779343d7b8f0afd1c4cac1dd0beb (diff) | |
parent | 14ad13bfc3e83e7b9befb78b837d28427d8eacdf (diff) | |
download | barebox-d44e3d642171fa506dcc5a6c1b2babe6b4b813bf.tar.gz barebox-d44e3d642171fa506dcc5a6c1b2babe6b4b813bf.tar.xz |
Merge branch 'for-next/lseek'
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-imx/imx-bbu-external-nand.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-imx/imx-bbu-internal.c | 10 | ||||
-rw-r--r-- | arch/mips/mach-ath79/art.c | 4 |
3 files changed, 14 insertions, 10 deletions
diff --git a/arch/arm/mach-imx/imx-bbu-external-nand.c b/arch/arm/mach-imx/imx-bbu-external-nand.c index 52622ac4cb..fa43d2e8dc 100644 --- a/arch/arm/mach-imx/imx-bbu-external-nand.c +++ b/arch/arm/mach-imx/imx-bbu-external-nand.c @@ -40,7 +40,7 @@ static int imx_bbu_external_nand_update(struct bbu_handler *handler, struct bbu_ int size_available, size_need; int ret; uint32_t num_bb = 0, bbt = 0; - uint64_t offset = 0; + loff_t offset = 0; int block = 0, len, now, blocksize; void *image = data->image; @@ -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; } diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c index 188369fe34..a563b3bc29 100644 --- a/arch/arm/mach-imx/imx-bbu-internal.c +++ b/arch/arm/mach-imx/imx-bbu-internal.c @@ -207,7 +207,7 @@ static int imx_bbu_internal_v2_write_nand_dbbt(struct imx_internal_bbu_handler * int size_available, size_need; int ret; uint32_t *ptr, *num_bb, *bb; - uint64_t offset; + loff_t offset; int block = 0, len, now, blocksize; int dbbt_start_page = 4; int firmware_start_page = 12; @@ -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; } diff --git a/arch/mips/mach-ath79/art.c b/arch/mips/mach-ath79/art.c index 984d087363..2a2099e9f5 100644 --- a/arch/mips/mach-ath79/art.c +++ b/arch/mips/mach-ath79/art.c @@ -44,8 +44,8 @@ static int art_read_mac(struct device_d *dev, const char *file) fd = open_and_lseek(file, O_RDONLY, AR93000_EPPROM_OFFSET); if (fd < 0) { dev_err(dev, "Failed to open eeprom path %s %d\n", - file, fd); - return fd; + file, -errno); + return -errno; } rbytes = read_full(fd, &eeprom, sizeof(eeprom)); |