diff options
author | Erik Tideman <erik.tideman@faltcom.se> | 2016-01-11 13:39:07 +0000 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-01-20 10:19:19 -0500 |
commit | 99e7fc8a2659ff1b2887c8b11b01ef423e00ee1c (patch) | |
tree | f0d07f33cd5b7f77bc79403511fef9dce62fe1e5 /disk/part.c | |
parent | 1d48ca69e5cb0538b0cae8fa651d2cb2eb97b2cb (diff) |
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>
Diffstat (limited to 'disk/part.c')
-rw-r--r-- | disk/part.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/disk/part.c b/disk/part.c index 909712e5011..1935b288410 100644 --- a/disk/part.c +++ b/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; |