On Wed, Dec 28, 2016 at 04:09:31PM +0800, Jason Wang wrote:
> +static int tun_rx_batched(struct tun_file *tfile, struct sk_buff *skb,
> +                       int more)
> +{
> +     struct sk_buff_head *queue = &tfile->sk.sk_write_queue;
> +     struct sk_buff_head process_queue;
> +     int qlen;
> +     bool rcv = false;
> +
> +     spin_lock(&queue->lock);

Should this be spin_lock_bh()?  Below and in tun_get_user() there are
explicit local_bh_disable() calls so I guess BHs can interrupt us here
and this would deadlock.

Attachment: signature.asc
Description: PGP signature

Reply via email to