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>
This commit is contained in:
Robert Hancock 2019-06-18 09:53:04 -06:00 committed by Tom Rini
parent 3d2ab90d16
commit 4edfabd9e4

View File

@ -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: