Everyone: This series is a result of my attempt to fix a regression in lseek() on 32-bit platforms. The regression manifested in lseek() unable to seek past ~4GiB mark caused and was caused by usage of IS_ERR_VALUE() (see commit messages for more detailed explanation). My goal was to both get rid of IS_ERR_VALUE() while still make it possible to access all 64-bits of address space via /dev/mem on 64-bit machines. First three commits are optional and can be dropped. Feedback is welcome! Thanks, Andrey Smirnov Andrey Smirnov (7): commands: Move mem_parse_options() to lib/misc.c commands: Get rid of mem_rw_buf commands: Move /dev/mem driver to drivers/misc fs: Change error checking logic for fsdrv->lseek() call fs: Calculate new position before validtiy check in lseek() fs: Add support for files larger than MAX_LFS_FILESIZE misc: mem: Set correct size for /dev/mem commands/Kconfig | 17 +++--- commands/Makefile | 1 - commands/md.c | 12 +++-- commands/mem.c | 123 ------------------------------------------ commands/memcmp.c | 16 +++--- commands/memcpy.c | 10 ++-- commands/memset.c | 2 - common/ratp/md.c | 9 ++-- drivers/misc/Kconfig | 3 ++ drivers/misc/Makefile | 1 + drivers/misc/mem.c | 45 ++++++++++++++++ fs/devfs.c | 2 + fs/fs.c | 48 +++++++++++------ include/driver.h | 1 + include/fs.h | 1 + lib/misc.c | 42 +++++++++++++++ 16 files changed, 160 insertions(+), 173 deletions(-) delete mode 100644 commands/mem.c create mode 100644 drivers/misc/mem.c -- 2.20.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox