diff options
author | Robert Hancock <hancock@sedsystems.ca> | 2019-06-18 09:53:04 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-06-21 10:07:11 -0400 |
commit | 4edfabd9e40d72480418d4ce39228abd6c0f4f02 (patch) | |
tree | 6ecc6eb66f5e804535ec7419de2983be25da590d | |
parent | 3d2ab90d16ae3f54ef58d0474693646a2801bc57 (diff) | |
download | u-boot-4edfabd9e40d72480418d4ce39228abd6c0f4f02.zip u-boot-4edfabd9e40d72480418d4ce39228abd6c0f4f02.tar.gz u-boot-4edfabd9e40d72480418d4ce39228abd6c0f4f02.tar.bz2 |
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>
-rw-r--r-- | disk/part.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/disk/part.c b/disk/part.c index 862078f..f14bc22 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: |