Parcourir la source

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 <[email protected]>
Rafał Miłecki il y a 7 ans
Parent
commit
7ddba08d87

+ 2 - 1
target/linux/generic/pending-4.14/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch

@@ -59,9 +59,10 @@ Signed-off-by: Rafał Miłecki <[email protected]>
  
  	if (trx.offset[i]) {
  		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 = parser_trx_real_offset(mtd, trx.offset[i]);
++		part->name = parser_trx_data_part_name(mtd, part->offset);
  		i++;
  	}
  

+ 2 - 1
target/linux/generic/pending-4.9/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch

@@ -59,9 +59,10 @@ Signed-off-by: Rafał Miłecki <[email protected]>
  
  	if (trx.offset[i]) {
  		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 = parser_trx_real_offset(mtd, trx.offset[i]);
++		part->name = parser_trx_data_part_name(mtd, part->offset);
  		i++;
  	}