summaryrefslogtreecommitdiff
path: root/disk
diff options
context:
space:
mode:
authorRobert Hancock <hancock@sedsystems.ca>2019-06-18 09:53:04 -0600
committerTom Rini <trini@konsulko.com>2019-06-21 10:07:11 -0400
commit4edfabd9e40d72480418d4ce39228abd6c0f4f02 (patch)
tree6ecc6eb66f5e804535ec7419de2983be25da590d /disk
parent3d2ab90d16ae3f54ef58d0474693646a2801bc57 (diff)
downloadu-boot-4edfabd9e40d72480418d4ce39228abd6c0f4f02.tar.gz
disk: part: Don't skip partition init
blk_get_device_by_str was skipping part_init when hw partition 0 was selected because it is the default. However, this caused issues when switching to a non-zero partition and then back to partition zero, as stale data from the wrong partition was returned. Remove this optimization and call part_init regardless of the selected partition. Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
Diffstat (limited to 'disk')
-rw-r--r--disk/part.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/disk/part.c b/disk/part.c
index 862078f3e7..f14bc22b6d 100644
--- a/disk/part.c
+++ b/disk/part.c
@@ -414,11 +414,10 @@ int blk_get_device_by_str(const char *ifname, const char *dev_hwpart_str,
#ifdef CONFIG_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.
+ * Always should be done, otherwise hw partition 0 will return stale
+ * data after displaying a non-zero hw partition.
*/
- if(hwpart != 0)
- part_init(*dev_desc);
+ part_init(*dev_desc);
#endif
cleanup: