path: root/disk
diff options
authorErik Tideman <>2016-01-11 13:39:07 +0000
committerTom Rini <>2016-01-20 10:19:19 -0500
commit99e7fc8a2659ff1b2887c8b11b01ef423e00ee1c (patch)
treef0d07f33cd5b7f77bc79403511fef9dce62fe1e5 /disk
parent1d48ca69e5cb0538b0cae8fa651d2cb2eb97b2cb (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 <> Reviewed-by: Tom Rini <> [trini: Squash the patch that corrected whitespace in the original into this one, wrap with HAVE_BLOCK_DEVICE test] Signed-off-by: Tom Rini <>
Diffstat (limited to 'disk')
1 files changed, 10 insertions, 0 deletions
diff --git a/disk/part.c b/disk/part.c
index 909712e501..1935b28841 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;
+ /*
+ * 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);
return dev;
OpenPOWER on IntegriCloud