The patches really fix/simplify things :) Did you test device open->close->open? It was broken in my last test, we cad add link indications too. Besides that I also remembered that adding 'vq->num_free =vq->ring.num;' after reset fixed part of the problems, I don't remember why (gonna re-check it soon), I think it was the reset calls for (..) detach_buf for all buffers regardless if they were free already. Cheers, Dor On Thu, 2008-01-24 at 01:18 +1100, Rusty Russell wrote: > diff -r f9464b21ed9c drivers/net/virtio_net.c > --- a/drivers/net/virtio_net.c Wed Jan 23 23:52:47 2008 +1100 > +++ b/drivers/net/virtio_net.c Thu Jan 24 00:47:05 2008 +1100 > @@ -415,12 +415,10 @@ static void virtnet_remove(struct virtio > struct sk_buff *skb; > > /* Free our skbs in send and recv queues, if any. */ > - vi->rvq->vq_ops->shutdown(vi->rvq); > while ((skb = __skb_dequeue(&vi->recv)) != NULL) { > kfree_skb(skb); > vi->num--; > } > - vi->svq->vq_ops->shutdown(vi->svq); > while ((skb = __skb_dequeue(&vi->send)) != NULL) > kfree_skb(skb); _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization