mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
Merge "ipq: Handled unaligned data written in nand flash while dump collection"
This commit is contained in:
commit
d0a7c9bed8
1 changed files with 10 additions and 5 deletions
|
|
@ -769,7 +769,7 @@ static int check_and_write_crashdump_nand_flash(
|
||||||
uint32_t part_start = nand_cnxt->part_start;
|
uint32_t part_start = nand_cnxt->part_start;
|
||||||
uint32_t part_end = nand_cnxt->part_start + nand_cnxt->part_size;
|
uint32_t part_end = nand_cnxt->part_start + nand_cnxt->part_size;
|
||||||
unsigned int remaining_len = req_size;
|
unsigned int remaining_len = req_size;
|
||||||
unsigned int data_offset = 0;
|
unsigned int write_length, data_offset = 0;
|
||||||
loff_t skipoff, skipoff_cmp, *offset;
|
loff_t skipoff, skipoff_cmp, *offset;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
static int first_erase = 1;
|
static int first_erase = 1;
|
||||||
|
|
@ -813,15 +813,20 @@ static int check_and_write_crashdump_nand_flash(
|
||||||
|
|
||||||
if( remaining_len > nand->erasesize) {
|
if( remaining_len > nand->erasesize) {
|
||||||
|
|
||||||
ret = nand_write(nand, *offset, &nand->erasesize,
|
skipoff = (*offset & (nand->erasesize - 1));
|
||||||
|
|
||||||
|
write_length = (skipoff != 0) ? (nand->erasesize - skipoff)
|
||||||
|
: (nand->erasesize);
|
||||||
|
|
||||||
|
ret = nand_write(nand, *offset, &write_length,
|
||||||
data + data_offset);
|
data + data_offset);
|
||||||
|
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
remaining_len -= nand->erasesize;
|
remaining_len -= write_length;
|
||||||
*offset += nand->erasesize;
|
*offset += write_length;
|
||||||
data_offset += nand->erasesize;
|
data_offset += write_length;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue