Hi David,

It worked like a charm!!

Tried both with static IP and DHCP, ssh'ed into it, and synced the tree
through cvs without issues!

On 23/11/2015 14:24, David Gwynne wrote:
> On Mon, Nov 23, 2015 at 11:21:26AM +0000, Ricardo Mestre wrote:
>> Hi,
>>
>> As soon as dlg@ sent the patch to tech@ for sys/net/if.c (1.408) and
>> sys/dev/pci/if_de.c (1.127), a few days ago, I wanted to test them
>> before the actual commit, but was not able until today. And it bit me
>> the hard way, my Hyper-V VMs don't boot anymore with the lastest kernel
>> from today, it crashes as soon as "starting network" appears in the
>> screen (I know it's not real hardware, and I still can boot from a
>> previous kernel, so it's not critical, nevertheless you should be aware
>> of this).
>>
>> crash, trace, ps, registers, and dmesg from kernel built on 15/11 below:
> 
> \o/
> 
> im happy to find this out before everything fell out of my head.
> 
> could you try the diff below?
> 
> Index: if_de.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/if_de.c,v
> retrieving revision 1.127
> diff -u -p -r1.127 if_de.c
> --- if_de.c   20 Nov 2015 03:35:23 -0000      1.127
> +++ if_de.c   23 Nov 2015 14:22:14 -0000
> @@ -3259,9 +3259,6 @@ tulip_rx_intr(tulip_softc_t * const sc)
>               TULIP_RXMAP_POSTSYNC(sc, map);
>               bus_dmamap_unload(sc->tulip_dmatag, map);
>               tulip_free_rxmap(sc, map);
> -#if defined(DIAGNOSTIC)
> -             TULIP_SETCTX(me, NULL);
> -#endif
>               me->m_len = TULIP_RX_BUFLEN;
>               last_offset += TULIP_RX_BUFLEN;
>               me->m_next = ml_dequeue(&sc->tulip_rxq);
> @@ -3282,9 +3279,6 @@ tulip_rx_intr(tulip_softc_t * const sc)
>                           BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);
>           bus_dmamap_unload(sc->tulip_dmatag, map);
>           tulip_free_rxmap(sc, map);
> -#if defined(DIAGNOSTIC)
> -         TULIP_SETCTX(me, NULL);
> -#endif
>           sc->tulip_flags |= TULIP_RXACT;
>           accept = 1;
>       } else {
> @@ -3320,9 +3314,6 @@ tulip_rx_intr(tulip_softc_t * const sc)
>           map = TULIP_GETCTX(me, bus_dmamap_t);
>           bus_dmamap_unload(sc->tulip_dmatag, map);
>           tulip_free_rxmap(sc, map);
> -#if defined(DIAGNOSTIC)
> -         TULIP_SETCTX(me, NULL);
> -#endif
>       }
>  #if defined(TULIP_DEBUG)
>       cnt++;
> @@ -3914,8 +3905,6 @@ tulip_txput(tulip_softc_t * const sc, st
>           nextout = ri->ri_first;
>      }
>      TULIP_TXMAP_PRESYNC(sc, map);
> -    TULIP_SETCTX(m, map);
> -    map = NULL;
>  
>      /*
>       * The descriptors have been filled in.  Now get ready
> @@ -3923,6 +3912,9 @@ tulip_txput(tulip_softc_t * const sc, st
>       */
>      if (!notonqueue)
>       ifq_deq_commit(&ifp->if_snd, m);
> +
> +    TULIP_SETCTX(m, map);
> +    map = NULL;
>  
>      ml_enqueue(&sc->tulip_txq, m);
>      m = NULL;
> 

Reply via email to