On Fri, 2012-11-30 at 18:00 +0100, Krzysztof Mazur wrote: > On Fri, Nov 30, 2012 at 04:23:46PM +0000, David Woodhouse wrote: > > > > +static void br2684_release_cb(struct atm_vcc *atmvcc) > > +{ > > + struct br2684_vcc *brvcc = BR2684_VCC(atmvcc); > > + > > + /* > > + * A race with br2684_xmit_vcc() might cause a spurious wakeup just > > + * after that function *stops* the queue, and qspace might actually > > + * go negative before the queue stops again. We cope with that. > > + */ > > We cannot race with br2684_xmit_vcc() because both br2684_xmit_vcc() > and br2684_release_cb() are called with locked sk->sk_lock.slock. Ah, right. For some reason I thought the lock was already dropped when ->release_cb() was called. In that case I'll remove the comment. Thanks. -- dwmw2