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;
>