grub2/grub-2.00-ppc-no-tree-scanning.patch

60 lines
2 KiB
Diff
Raw Normal View History

From 03f6e77635f4f311a2c7bdd581f6202fa52feef7 Mon Sep 17 00:00:00 2001
From: Valdimir Serbinenko <phcoder@gmail.com>
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