* grub-core/disk/ieee1275/ofdisk.c (scan): Don't scan device tree if

GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS is set.
	* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
	GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS on IBM hardware.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum value
	GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-05-13 20:29:23 +02:00
parent bfb320c644
commit 5560e9d6e1
4 changed files with 18 additions and 3 deletions

View file

@ -1,9 +1,18 @@
2012-05-12 Vladimir Serbinenko <phcoder@gmail.com> 2012-05-13 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/disk/ieee1275/ofdisk.c (scan): Don't scan device tree if
GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS is set.
* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS on IBM hardware.
* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum value
GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS.
2012-05-13 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/fs.c (grub_fs_probe): Handle GRUB_ERR_OUT_OF_RANGE as * grub-core/kern/fs.c (grub_fs_probe): Handle GRUB_ERR_OUT_OF_RANGE as
a bad FS. a bad FS.
2012-05-12 Vladimir Serbinenko <phcoder@gmail.com> 2012-05-13 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/udf.c (read_string): Bail out on size=0. * grub-core/fs/udf.c (read_string): Bail out on size=0.
(grub_udf_read_symlink): Handle read_string failure. (grub_udf_read_symlink): Handle read_string failure.

View file

@ -159,7 +159,8 @@ scan (void)
} }
grub_devalias_iterate (dev_iterate_alias); 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 static int

View file

@ -88,6 +88,9 @@ grub_ieee1275_find_options (void)
if (rc >= 0 && !grub_strcmp (tmp, "Emulated PC")) if (rc >= 0 && !grub_strcmp (tmp, "Emulated PC"))
is_qemu = 1; 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) if (grub_strncmp (tmp, "PowerMac", sizeof ("PowerMac") - 1) == 0)
grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS); grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS);

View file

@ -116,6 +116,8 @@ enum grub_ieee1275_flag
1 address cell is used on PowerMacs. 1 address cell is used on PowerMacs.
*/ */
GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS, 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); extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag);