]> err.no Git - linux-2.6/blobdiff - arch/x86/boot/edd.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[linux-2.6] / arch / x86 / boot / edd.c
index bd138e442ec25bfd08b5dec3a166d1f5d4e6a48e..d84a48ece78503b10e8429981e44397b6755a454 100644 (file)
@@ -9,8 +9,6 @@
  * ----------------------------------------------------------------------- */
 
 /*
- * arch/i386/boot/edd.c
- *
  * Get EDD BIOS disk information
  */
 
@@ -129,6 +127,7 @@ void query_edd(void)
        char eddarg[8];
        int do_mbr = 1;
        int do_edd = 1;
+       int be_quiet;
        int devno;
        struct edd_info ei, *edp;
        u32 *mbrptr;
@@ -140,12 +139,21 @@ void query_edd(void)
                        do_edd = 0;
        }
 
+       be_quiet = cmdline_find_option_bool("quiet");
+
        edp    = boot_params.eddbuf;
        mbrptr = boot_params.edd_mbr_sig_buffer;
 
        if (!do_edd)
                return;
 
+       /* Bugs in OnBoard or AddOnCards Bios may hang the EDD probe,
+        * so give a hint if this happens.
+        */
+
+       if (!be_quiet)
+               printf("Probing EDD (edd=off to disable)... ");
+
        for (devno = 0x80; devno < 0x80+EDD_MBR_SIG_MAX; devno++) {
                /*
                 * Scan the BIOS-supported hard disks and query EDD
@@ -162,6 +170,9 @@ void query_edd(void)
                if (do_mbr && !read_mbr_sig(devno, &ei, mbrptr++))
                        boot_params.edd_mbr_sig_buf_entries = devno-0x80+1;
        }
+
+       if (!be_quiet)
+               printf("ok\n");
 }
 
 #endif