From 4edfabd9e40d72480418d4ce39228abd6c0f4f02 Mon Sep 17 00:00:00 2001 From: Robert Hancock Date: Tue, 18 Jun 2019 09:53:04 -0600 Subject: [PATCH] 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 --- disk/part.c | 7 +++---- 1 file 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: -- 2.39.5