On Wed, May 04, 2011 at 08:18:04AM -0700, Shirley Ma wrote: > > > +void vhost_zerocopy_callback(struct sk_buff *skb) > > > +{ > > > + int idx = skb_shinfo(skb)->ubuf.desc; > > > + struct vhost_virtqueue *vq = skb_shinfo(skb)->ubuf.arg; > > > + > > > + /* set len = 1 to mark this desc buffers done DMA */ > > > + vq->heads[idx].len = 1; > > > +} > > > > So any kind of callback like that, that goes into the skb, > > will be racy wrt module unloading because module can go away > > after you mark dma done and before this function returns. > > Solution is to have a core function that does the > > final signalling (e.g. sock_wfree is in core). > > Would be nice to fix, even though this race is > > completely theoretical, I don't believe it will > > trigger in practice. > > I run lots of stress tests, and never hit this. > > But I can try to fix it. Yes, it's a theoretical thing. Nice to have but not a must. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html