mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 14:10:43 +00:00
Fix computation in nand_util.c:get_len_incl_bad
Depending on offset, flash size and the number of bad blocks, get_len_incl_bad may return a too small value which may lead to: 1) If there are no bad blocks, nand_{read,write}_skip_bad chooses the bad block aware read/write code. This may hurt performance, but does not have any adverse effects. 2) If there are bad blocks, the nand_{read,write}_skip_bad may choose the bad block unaware read/write code (if len_incl_bad == *length) which leads to corrupted data. Signed-off-by: Daniel Hobi <daniel.hobi@schmid-telecom.ch>
This commit is contained in:
parent
aabb8cb081
commit
0ec81db202
1 changed files with 1 additions and 1 deletions
|
@ -452,7 +452,7 @@ static size_t get_len_incl_bad (nand_info_t *nand, loff_t offset,
|
|||
len_incl_bad += block_len;
|
||||
offset += block_len;
|
||||
|
||||
if ((offset + len_incl_bad) >= nand->size)
|
||||
if (offset >= nand->size)
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue