From 03f6e77635f4f311a2c7bdd581f6202fa52feef7 Mon Sep 17 00:00:00 2001 From: Valdimir Serbinenko Date: Sun, 13 May 2012 18:23:02 +0000 Subject: [PATCH] Don't scan device tree if flag is set. Don't scan device tree if GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS is set. === modified file 'grub-core/disk/ieee1275/ofdisk.c' --- grub-core/disk/ieee1275/ofdisk.c | 3 ++- grub-core/kern/ieee1275/cmain.c | 3 +++ include/grub/ieee1275/ieee1275.h | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c index 56fed0a..6b734f7 100644 --- a/grub-core/disk/ieee1275/ofdisk.c +++ b/grub-core/disk/ieee1275/ofdisk.c @@ -159,7 +159,8 @@ scan (void) } grub_devalias_iterate (dev_iterate_alias); - grub_ieee1275_devices_iterate (dev_iterate); + if (!grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS)) + grub_ieee1275_devices_iterate (dev_iterate); } static int diff --git a/grub-core/kern/ieee1275/cmain.c b/grub-core/kern/ieee1275/cmain.c index 9e80757..e04ce5b 100644 --- a/grub-core/kern/ieee1275/cmain.c +++ b/grub-core/kern/ieee1275/cmain.c @@ -88,6 +88,9 @@ grub_ieee1275_find_options (void) if (rc >= 0 && !grub_strcmp (tmp, "Emulated PC")) is_qemu = 1; + if (rc >= 0 && grub_strncmp (tmp, "IBM", 3) == 0) + grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS); + if (grub_strncmp (tmp, "PowerMac", sizeof ("PowerMac") - 1) == 0) grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS); diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h index fb85db9..99a4bc1 100644 --- a/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h @@ -116,6 +116,8 @@ enum grub_ieee1275_flag 1 address cell is used on PowerMacs. */ GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS, + + GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS }; extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag); -- 1.7.10.1