Message ID | 1560873184-21616-1-git-send-email-hancock@sedsystems.ca |
---|---|
State | Accepted |
Commit | 4edfabd9e40d72480418d4ce39228abd6c0f4f02 |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot] disk: part: Don't skip partition init | expand |
On Tue, Jun 18, 2019 at 09:53:04AM -0600, Robert Hancock wrote: > 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> Applied to u-boot/master, thanks!
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:
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> --- disk/part.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)