summaryrefslogtreecommitdiff
path: root/debian/patches/20_slow-boot.patch
blob: ff00299cad7359ebf6f6ba5d016387064161f255 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
commit 14a29498dfee39e72443ff0e6f463be7f3bfd4ec
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Thu Dec 27 21:48:42 2012 +0100

    Fix slow boot in virtualbox
    
    By disabling some of the most slow drivers by default, and giving progress
    feedback to the user.
    
    * linux/configfrag.ac (CONFIG_SCSI_NCR53C7xx, CONFIG_SCSI_AIC7XXX,
    CONFIG_SCSI_GDTH): Disable by default
    * linux/src/drivers/scsi/eata.c (__initfunc): Don't feed line in probe
    message.
    * linux/src/drivers/scsi/hosts.c (scsi_init): Print SCSI probe progress.

diff --git a/linux/configfrag.ac b/linux/configfrag.ac
index f5af666..882af6b 100644
--- a/linux/configfrag.ac
+++ b/linux/configfrag.ac
@@ -157,7 +157,8 @@ AC_ARG_ENABLE([ide-forcedma],
 dnl SCSI controllers.
 AC_OPTION_Linux_group([scsi], [SCSI drivers])
 
-AC_Linux_DRIVER([53c78xx],
+# Disabled by default.
+AC_Linux_DRIVER_nodef([53c78xx],
   [SCSI controller NCR 53C7,8xx],
   [CONFIG_SCSI_NCR53C7xx],
   [scsi])
@@ -196,7 +197,8 @@ AC_Linux_DRIVER([aha1740],
   [SCSI controller Adaptec AHA-1740],
   [CONFIG_SCSI_AHA1740],
   [scsi])
-AC_Linux_DRIVER([aic7xxx],
+# Disabled by default.
+AC_Linux_DRIVER_nodef([aic7xxx],
   [SCSI controller Adaptec AIC7xxx],
   [CONFIG_SCSI_AIC7XXX],
   [scsi])
@@ -227,7 +229,8 @@ AC_Linux_DRIVER_nodef([g_NCR5380],
   [SCSI controller Generic NCR5380/53c400 (ncr5380, ncr53c400)],
   [CONFIG_SCSI_GENERIC_NCR5380],
   [scsi])
-AC_Linux_DRIVER([gdth],
+# Disabled by default.
+AC_Linux_DRIVER_nodef([gdth],
   [GDT SCSI Disk Array Controller],
   [CONFIG_SCSI_GDTH],
   [scsi])
diff --git a/linux/src/drivers/scsi/eata.c b/linux/src/drivers/scsi/eata.c
index ce859ce..49f0827 100644
--- a/linux/src/drivers/scsi/eata.c
+++ b/linux/src/drivers/scsi/eata.c
@@ -881,7 +881,7 @@ __initfunc (static inline int port_detect \
 
    sprintf(name, "%s%d", driver_name, j);
 
-   printk("probing eata on %lx\n", port_base);
+   printk("\rprobing eata on %lx", port_base);
 
    if(check_region(port_base, REGION_SIZE)) {
       printk("%s: address 0x%03lx in use, skipping probe.\n", name, port_base);
diff --git a/linux/src/drivers/scsi/hosts.c b/linux/src/drivers/scsi/hosts.c
index 010e1ce..0f1bedd 100644
--- a/linux/src/drivers/scsi/hosts.c
+++ b/linux/src/drivers/scsi/hosts.c
@@ -472,6 +472,7 @@ unsigned int scsi_init()
 	 * Initialize our semaphores.  -1 is interpreted to mean
 	 * "inactive" - where as 0 will indicate a time out condition.
 	 */
+	printk("\rprobing scsi %d/%d: %s \e[K", tpnt-builtin_scsi_hosts, MAX_SCSI_HOSTS, tpnt->name);
 	
 	pcount = next_scsi_host;
 	if ((tpnt->detect) &&
@@ -496,6 +497,7 @@ unsigned int scsi_init()
 #endif
 	}
     }
+    printk("\ndone\n");
         
     for(shpnt=scsi_hostlist; shpnt; shpnt = shpnt->next)
     {