mtd: fix false positive "Offset exceeds device limit" error
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Wed, 1 Jul 2015 12:35:49 +0000 (21:35 +0900)
committerTom Rini <trini@konsulko.com>
Fri, 10 Jul 2015 13:38:50 +0000 (09:38 -0400)
commitf18d11163e4ea523aff489721db5de752fe062bf
tree894e48e9133c1cbcd5cca0aca7d2beda9e1403df
parentfa31377ef0fd1096fbeab9c240582a93c4da9f6d
mtd: fix false positive "Offset exceeds device limit" error

Since commit 09c3280754f8 (mtd, nand: Move common functions from
cmd_nand.c to common place), NAND commands would not work at all
on large devices.

    => nand read 80000000 10000 10000

    NAND read: Offset exceeds device limit
    => nand erase 100000 100000

    NAND erase: Offset exceeds device limit

The type of the "size" of "struct mtd_info" is uint64_t, while
mtd_arg_off_size() and mtd_arg_off() treat chipsize as int type.
The chipsize is wrapped around if the argument is given with 2GB
or larger.

Acked-by: Heiko Schocher <hs@denx.de>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
drivers/mtd/mtd_uboot.c
include/linux/mtd/mtd.h