From: Andreas Färber Date: Mon, 14 Sep 2015 10:21:34 +0000 (+0200) Subject: api_storage: Fix non-first storage device enumeration X-Git-Tag: v2015.10-rc4~43 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ce2a07b77ceae8ed4b95a1c0165c6e179252ffee;p=oweals%2Fu-boot.git api_storage: Fix non-first storage device enumeration When enabling CONFIG_API and chain-loading GRUB2 on jetson-tk1, only the eMMC would show up as (hd0), but not the SD card, leading to GRUB not finding its configuration and modules, falling back to a rescue shell. This is because enum_ended would get set for !more after returning a cookie for the first MMC device in group 3. Fix this by properly setting the "more" argument also in the case of the first storage device of a group. Signed-off-by: Andreas Färber --- diff --git a/api/api_storage.c b/api/api_storage.c index b76b07d4c6..ec92ae48d1 100644 --- a/api/api_storage.c +++ b/api/api_storage.c @@ -112,6 +112,11 @@ static int dev_stor_get(int type, int first, int *more, struct device_info *di) else found = 1; + /* provide hint if there are more devices in + * this group to enumerate */ + if (1 < specs[type].max_dev) + *more = 1; + } else { for (i = 0; i < specs[type].max_dev; i++) if (di->cookie == (void *)get_dev(specs[type].name, i)) {