Subject: Re: ultra2 netboot oh-no, not again
To: None <eeh@netbsd.org>
From: Andrei Petrov <and@genesyslab.com>
List: port-sparc64
Date: 09/29/2000 18:32:54
Here are the patches, first for hme.c, another one for if_arp.c, 
it seems (hard to believe but) that boot-server responds so fast
and ethernet transmit so fast that it happens before tsleep so
without that patch I was unable not boot. Patch is harmless, I
hope, just help a little for revarpblabla

I don't have le, so don't feel comfortable fixing that.

Have a good weekend, bye,
	Andrey

Index: hme.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/ic/hme.c,v
retrieving revision 1.15
diff -c -r1.15 hme.c
*** hme.c       2000/06/25 01:05:16     1.15
--- hme.c       2000/09/30 01:22:23
***************
*** 231,237 ****
  
        /* Load the buffer */
        if ((error = bus_dmamap_load(dmatag, sc->sc_dmamap,
!           sc->sc_rb.rb_membase, size, NULL, BUS_DMA_NOWAIT)) != 0) {
                printf("%s: DMA buffer map load error %d\n",
                        sc->sc_dev.dv_xname, error);
                bus_dmamem_free(dmatag, &seg, rseg);
--- 231,237 ----
  
        /* Load the buffer */
        if ((error = bus_dmamap_load(dmatag, sc->sc_dmamap,
!           sc->sc_rb.rb_membase, size, NULL, BUS_DMA_NOWAIT |
BUS_DMA_COHERENT)) != 0) {
                printf("%s: DMA buffer map load error %d\n",
                        sc->sc_dev.dv_xname, error);
                bus_dmamem_free(dmatag, &seg, rseg);

Index: if_arp.c
===================================================================
RCS file: /cvsroot/syssrc/sys/netinet/if_arp.c,v
retrieving revision 1.70
diff -c -r1.70 if_arp.c
*** if_arp.c    2000/08/15 20:24:57     1.70
--- if_arp.c    2000/09/30 01:23:36
***************
*** 1171,1176 ****
--- 1171,1178 ----
                result = tsleep((caddr_t)&myip, PSOCK, "revarp", hz/2);
                if (result != EWOULDBLOCK)
                        break;
+               if (myip_initialized)
+                       break;
        }
        revarp_in_progress = 0;