On Thu, Apr 02, 2020 at 01:52:23AM BST, Raf Czlonka wrote:
> On Mon, Mar 30, 2020 at 12:21:58PM BST, Stefan Sperling wrote:
> > On Sun, Mar 29, 2020 at 01:15:37PM +0100, Raf Czlonka wrote:
> >
> > > When I unplugged the NIC at that point, I got a panic:
> > >
> > > panic: Data modified on freelist: word 10 of object
> > > 0xffff80000099a000 size 0x2000 previous type devbuf (0xdead410f !=
> > > 0xdead4110)
> > >
> >
> > This might prevent the panic (compile-tested only).
>
> Haven't tested the diff yet - I'll let you know once I do.
>
Stefan,
I've just tested it but, whilst I don't get a panic when I *un*plug
the USB NIC, I *do* get the same panic when I *plug* it back in :^(
Regards,
Raf
>
> > diff 9d8a60ff1dae84d5c890bdc5040be018a3bdd3dc /usr/src
> > blob - 61dc357bf69a56d1ce282d505eecd343b0eb2465
> > file + sys/dev/usb/if_zyd.c
> > --- sys/dev/usb/if_zyd.c
> > +++ sys/dev/usb/if_zyd.c
> > @@ -2216,6 +2216,7 @@ zyd_tx(struct zyd_softc *sc, struct mbuf *m, struct ie
> > ZYD_TX_TIMEOUT, zyd_txeof);
> > error = usbd_transfer(data->xfer);
> > if (error != USBD_IN_PROGRESS && error != 0) {
> > + data->ni = NULL;
> > ifp->if_oerrors++;
> > return EIO;
> > }