From ce2a07b77ceae8ed4b95a1c0165c6e179252ffee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Mon, 14 Sep 2015 12:21:34 +0200 Subject: api_storage: Fix non-first storage device enumeration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- api/api_storage.c | 5 +++++ 1 file changed, 5 insertions(+) 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)) { -- cgit v1.2.1