
On Thu, Nov 02, 2017 at 04:46:34PM +0800, Shawn Guo wrote:
From: Shawn Guo shawn.guo@linaro.org
The check in part_get_info_extended() for a successful partition searching misses a condition for extended partition. In case of (ext_part_sector == 0), we should anyway mark the partition as found, even if it's an extended partition, i.e. (is_extended(pt->sys_ind) == 0). Otherwise, the extended partition (type 0x0f) will never be identified, and the following recursive call to part_get_info_extended() will get a wrong 'part_num' and 'which_part' parameter. In the end, all those partitions in extended table will not be identified.
Let's add the missing OR condition of (ext_part_sector == 0) for is_extended() check to fix the problem.
The issue is discovered by running fastboot flash to an extended partition on eMMC.
$ fastboot flash mmcsda5 cache.img target reported max download size of 536870912 bytes sending 'mmcsda5' (18796 KB)... OKAY [ 2.144s] writing 'mmcsda5'... FAILED (remote: cannot find partition) finished. total time: 2.261s
Signed-off-by: Shawn Guo shawn.guo@linaro.org
Applied to u-boot/master, thanks!