summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2019-04-08 10:17:15 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2019-04-08 10:17:15 +0200
commitd44e3d642171fa506dcc5a6c1b2babe6b4b813bf (patch)
treef07ca08305b99b0c01ddd4775fd15b38ed7d0a67 /arch
parentc239b65fc2bc779343d7b8f0afd1c4cac1dd0beb (diff)
parent14ad13bfc3e83e7b9befb78b837d28427d8eacdf (diff)
downloadbarebox-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.c10
-rw-r--r--arch/arm/mach-imx/imx-bbu-internal.c10
-rw-r--r--arch/mips/mach-ath79/art.c4
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));