nand: Fix access to last block in NAND devices
Currently, the last block of NAND devices can't be accessed. This patch fixes this issue by correcting the boundary checking (off-by-one error). Signed-off-by: Stefan Roese <sr@denx.de> Cc: Scott Wood <scottwood@freescale.com> Cc: Wolfgang Denk <wd@denx.de>
This commit is contained in:
parent
3b887ca8ce
commit
f4cfe42758
|
@ -490,7 +490,7 @@ int nand_write_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
||||||
|
|
||||||
len_incl_bad = get_len_incl_bad (nand, offset, *length);
|
len_incl_bad = get_len_incl_bad (nand, offset, *length);
|
||||||
|
|
||||||
if ((offset + len_incl_bad) >= nand->size) {
|
if ((offset + len_incl_bad) > nand->size) {
|
||||||
printf ("Attempt to write outside the flash area\n");
|
printf ("Attempt to write outside the flash area\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
@ -562,7 +562,7 @@ int nand_read_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
||||||
|
|
||||||
len_incl_bad = get_len_incl_bad (nand, offset, *length);
|
len_incl_bad = get_len_incl_bad (nand, offset, *length);
|
||||||
|
|
||||||
if ((offset + len_incl_bad) >= nand->size) {
|
if ((offset + len_incl_bad) > nand->size) {
|
||||||
printf ("Attempt to read outside the flash area\n");
|
printf ("Attempt to read outside the flash area\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue