To quote corresponding man page: "... Upon successful completion, lseek() returns the resulting offset location as measured in bytes from the beginning of the file." Which for lseek(fd, 0, SEEK_SET) would be 0, so returning 'ret' as final step of the function would mean it'd never return anything but 0 as well. Change the code to explicitly return '1' to fix the problem. Fixes: 7c3f8d366 ("uimage: fix: add can_lseek_backward and use in uimage_open") Cc: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> --- Sascha: This change should probably also go to master, since without enabling TFTP would break 'bootm' for uImages (at least it does on my setup) Thanks, Andrey Smirnov include/fs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/fs.h b/include/fs.h index f8a3b8bda..5c5fff870 100644 --- a/include/fs.h +++ b/include/fs.h @@ -117,7 +117,7 @@ static inline int can_lseek_backward(int fd) if (ret < 0) return 0; - return ret; + return 1; } #define drv_to_fs_driver(d) container_of(d, struct fs_driver_d, drv) -- 2.13.6 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox