=== modified file 'disk/ieee1275/ofdisk.c' --- disk/ieee1275/ofdisk.c 2010-07-29 03:58:16 +0000 +++ disk/ieee1275/ofdisk.c 2010-07-29 06:02:06 +0000 @@ -76,6 +76,9 @@ grub_ofdisk_iterate (int (*hook) (const char *name)) { auto int dev_iterate (struct grub_ieee1275_devalias *alias); + int disks_found = 0; + int use_path = 0; + int result; int dev_iterate (struct grub_ieee1275_devalias *alias) { @@ -110,11 +113,20 @@ if (! grub_strcmp (alias->type, "block") && grub_strncmp (alias->name, "cdrom", 5)) - ret = hook (alias->name); + { + disks_found++; + ret = hook (use_path ? alias->path : alias->name); + } return ret; } - return grub_devalias_iterate (dev_iterate); + result = grub_devalias_iterate (dev_iterate); + if (!disks_found) + { + use_path = 1; + result = grub_ieee1275_devices_iterate (dev_iterate); + } + return result; } static char *