This ports the following barebox commit:

| commit 8a6a9fbcecffab1b076edfad94d4f32bb2cc9435
| Author: Andrey Smirnov <andrew.smir...@gmail.com>
| Date:   Wed Mar 6 23:49:23 2019 -0800
|
|     state: Fix lseek error check in state_mtd_peb_read()
|
|     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.smir...@gmail.com>
|     Signed-off-by: Sascha Hauer <s.ha...@pengutronix.de>

Signed-off-by: Ulrich Ölmann <u.oelm...@pengutronix.de>
---
 src/barebox-state/backend_bucket_circular.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/barebox-state/backend_bucket_circular.c 
b/src/barebox-state/backend_bucket_circular.c
index f665c3b4539a..8cc7514d5f55 100644
--- a/src/barebox-state/backend_bucket_circular.c
+++ b/src/barebox-state/backend_bucket_circular.c
@@ -162,11 +162,10 @@ static int state_mtd_peb_read(struct 
state_backend_storage_bucket_circular *circ
 
        offset += (off_t)circ->eraseblock * circ->mtd->erasesize;
 
-       ret = lseek(circ->fd, offset, SEEK_SET);
-       if (ret < 0) {
+       if (lseek(circ->fd, offset, SEEK_SET) != offset) {
                dev_err(circ->dev, "Failed to set circular read position to 
%lld, %d\n",
-                       (long long) offset, ret);
-               return ret;
+                       (long long) offset, -errno);
+               return -errno;
        }
 
        dev_dbg(circ->dev, "Read state from %lld length %d\n", (long long) 
offset,
-- 
2.23.0


_______________________________________________
OSS-Tools mailing list
OSS-Tools@pengutronix.de

Reply via email to