kernel: bcm47xxpart: fix getting user-space data partition name

Partition name is picked by a parser_trx_data_part_name(). It has to
get correct partition offset (taking care of bad blocks) to work
properly.

This fixes UBI support for devices that have kernel flashed on partition
with a bad block.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
Rafał Miłecki 2018-07-10 14:02:00 +02:00
parent a5188eb258
commit 7ddba08d87
2 changed files with 4 additions and 2 deletions

View file

@ -59,9 +59,10 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
if (trx.offset[i]) { if (trx.offset[i]) {
part = &parts[curr_part++]; part = &parts[curr_part++];
part->name = parser_trx_data_part_name(mtd, trx.offset[i]); - part->name = parser_trx_data_part_name(mtd, trx.offset[i]);
- part->offset = trx.offset[i]; - part->offset = trx.offset[i];
+ part->offset = parser_trx_real_offset(mtd, trx.offset[i]); + part->offset = parser_trx_real_offset(mtd, trx.offset[i]);
+ part->name = parser_trx_data_part_name(mtd, part->offset);
i++; i++;
} }

View file

@ -59,9 +59,10 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
if (trx.offset[i]) { if (trx.offset[i]) {
part = &parts[curr_part++]; part = &parts[curr_part++];
part->name = parser_trx_data_part_name(mtd, trx.offset[i]); - part->name = parser_trx_data_part_name(mtd, trx.offset[i]);
- part->offset = trx.offset[i]; - part->offset = trx.offset[i];
+ part->offset = parser_trx_real_offset(mtd, trx.offset[i]); + part->offset = parser_trx_real_offset(mtd, trx.offset[i]);
+ part->name = parser_trx_data_part_name(mtd, part->offset);
i++; i++;
} }