boot delay when testing for ata devices

2003-01-27 Thread Enache Adrian
FreeBSD used to have an irritating boot delay in 4.4. It was gone in
~4.6, never reappeared in -STABLE, but is there in -CURRENT.
(I've seen it also mentioned in some vmware documentation).

Applying this patch fixes it:

--- /arc/freebsd/src/sys/dev/ata/ata-all.c  Sun Jan 19 23:54:13 2003
+++ sys/dev/ata/ata-all.c   Mon Jan 27 21:02:34 2003
@@ -514,7 +514,7 @@
 
 /* apparently some devices needs this repeated */
 do {
-   if (ata_command(atadev, command, 0, 0, 0, ATA_WAIT_INTR)) {
+   if (ata_command(atadev, command, 0, 0, 0, ATA_IMMEDIATE)) {
ata_prtdev(atadev, %s identify failed\n,
   command == ATA_C_ATAPI_IDENTIFY ? ATAPI : ATA);
free(ata_parm, M_ATA);

I'm not familiar with the ata code, but I can't see from ata-all.c
which harm this could cause.

Regards
Adi

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: boot delay when testing for ata devices

2003-01-27 Thread David Schultz
Thus spake Enache Adrian [EMAIL PROTECTED]:
 FreeBSD used to have an irritating boot delay in 4.4. It was gone in
 ~4.6, never reappeared in -STABLE, but is there in -CURRENT.
 (I've seen it also mentioned in some vmware documentation).
 
 Applying this patch fixes it:
 
 --- /arc/freebsd/src/sys/dev/ata/ata-all.cSun Jan 19 23:54:13 2003
 +++ sys/dev/ata/ata-all.c Mon Jan 27 21:02:34 2003
 @@ -514,7 +514,7 @@
  
  /* apparently some devices needs this repeated */
  do {
 - if (ata_command(atadev, command, 0, 0, 0, ATA_WAIT_INTR)) {
 + if (ata_command(atadev, command, 0, 0, 0, ATA_IMMEDIATE)) {
   ata_prtdev(atadev, %s identify failed\n,
  command == ATA_C_ATAPI_IDENTIFY ? ATAPI : ATA);
   free(ata_parm, M_ATA);
 
 I'm not familiar with the ata code, but I can't see from ata-all.c
 which harm this could cause.

There is already at least one person for whom this code doesn't
work, so this patch doesn't seem like a good idea.  Someone needs
to figure out exactly what delays are needed here to make
everyone's hardware actually work.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message