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.

> +     if (atomic_read(&brvcc->qspace) > 0)
> +             netif_wake_queue(brvcc->device);
> +
> +     if (brvcc->old_release_cb)
> +             brvcc->old_release_cb(atmvcc);
> +}

Except that comment, the patch looks good:

Acked-by: Krzysztof Mazur <krzys...@podlesie.net>

Krzysiek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to