from netbsd:
authorderaadt <deraadt@openbsd.org>
Fri, 12 Jan 1996 21:13:41 +0000 (21:13 +0000)
committerderaadt <deraadt@openbsd.org>
Fri, 12 Jan 1996 21:13:41 +0000 (21:13 +0000)
Kludge around a case where a flaky HP-IB disk might be slow to respond
to the identification request in rdmatch().  Similar in spirit to a
patch from Jason Downs (written eons ago), but limited to the broken
device we're trying to reach.  My patch tested (and fixed :-) by
Herb Peyerl.

sys/arch/hp300/dev/rd.c

index d1c480c..f122409 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: rd.c,v 1.17 1996/01/07 22:02:12 thorpej Exp $  */
+/*     $NetBSD: rd.c,v 1.18 1996/01/10 20:54:29 thorpej Exp $  */
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -231,8 +231,16 @@ rdmatch(hd)
        rs->sc_hd = hd;
        rs->sc_punit = rdpunit(hd->hp_flags);
        rs->sc_type = rdident(rs, hd, 0);
-       if (rs->sc_type < 0)
-               return(0);
+       if (rs->sc_type < 0) {
+               /*
+                * XXX Some ancient drives may be slow to respond, so
+                * probe them again.
+                */
+               DELAY(10000);
+               rs->sc_type = rdident(rs, hd, 0);
+               if (rs->sc_type < 0)
+                       return (0);
+       }
 
        /* XXX set up the external name */
        bzero(rs->sc_xname, sizeof(rs->sc_xname));