mmc: emmc and hw partitions partition table id bugfix.
On bootup the emmc's hw partition is always set to 0 and the partition table is read from it. When switching to another hw partition the partition table's id is not updated but instead the old one from hw partition 0 is used. If there is no partition table on hw partition 0 then the code will terminate and return error even if the desired hw partition contains a perfectly fine partition table. This fix updates the partition table struct to correspond to the specified hw partition before testing if the partition table is valid or not. Signed-off-by: Erik Tideman <erik.tideman@faltcom.se> Reviewed-by: Tom Rini <trini@konsulko.com> [trini: Squash the patch that corrected whitespace in the original into this one, wrap with HAVE_BLOCK_DEVICE test] Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
1d48ca69e5
commit
99e7fc8a26
10
disk/part.c
10
disk/part.c
@ -493,6 +493,16 @@ int get_device(const char *ifname, const char *dev_hwpart_str,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
#ifdef HAVE_BLOCK_DEVICE
|
||||
/*
|
||||
* Updates the partition table for the specified hw partition.
|
||||
* Does not need to be done for hwpart 0 since it is default and
|
||||
* already loaded.
|
||||
*/
|
||||
if(hwpart != 0)
|
||||
init_part(*dev_desc);
|
||||
#endif
|
||||
|
||||
cleanup:
|
||||
free(dup_str);
|
||||
return dev;
|
||||
|
Loading…
Reference in New Issue
Block a user