From c682dfd71de7b003075c678886f1da1dca41ee4d Mon Sep 17 00:00:00 2001 From: robertmh Date: Sat, 31 May 2008 21:14:27 +0000 Subject: [PATCH] 2008-05-31 Robert Millan * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through floppies after everything else, to ensure floppy drive isn't accessed unnecessarily (patch from Bean). --- ChangeLog | 6 ++++++ disk/i386/pc/biosdisk.c | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5590227d0..7276157a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-05-31 Robert Millan + + * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through + floppies after everything else, to ensure floppy drive isn't accessed + unnecessarily (patch from Bean). + 2008-05-31 Robert Millan * commands/search.c (search_label, search_fs_uuid, search_file): Do diff --git a/disk/i386/pc/biosdisk.c b/disk/i386/pc/biosdisk.c index 094bde0aa..c8fd1423b 100644 --- a/disk/i386/pc/biosdisk.c +++ b/disk/i386/pc/biosdisk.c @@ -66,12 +66,6 @@ grub_biosdisk_iterate (int (*hook) (const char *name)) int drive; int num_floppies; - /* For floppy disks, we can get the number safely. */ - num_floppies = grub_biosdisk_get_num_floppies (); - for (drive = 0; drive < num_floppies; drive++) - if (grub_biosdisk_call_hook (hook, drive)) - return 1; - /* For hard disks, attempt to read the MBR. */ for (drive = 0x80; drive < 0x90; drive++) { @@ -92,6 +86,12 @@ grub_biosdisk_iterate (int (*hook) (const char *name)) return 1; } + /* For floppy disks, we can get the number safely. */ + num_floppies = grub_biosdisk_get_num_floppies (); + for (drive = 0; drive < num_floppies; drive++) + if (grub_biosdisk_call_hook (hook, drive)) + return 1; + return 0; }