Subject: Re: [Xen-devel] [PATCH for stable 3.10] xen-netback: drop SKB from internal queue if frontend is disconnected

From: David Vrabel <[email-masked]>
Date: Fri, 11 Jul 2014 14:57:03 +0100

On 11/07/14 14:08, Wei Liu wrote:
> 
> --- a/drivers/net/xen-netback/netback.c
> +++ b/drivers/net/xen-netback/netback.c
> @@ -720,6 +720,16 @@ static void xen_netbk_rx_action(struct xen_netbk *netbk)
>  		vif = netdev_priv(skb->dev);
>  		nr_frags = skb_shinfo(skb)->nr_frags;
>  
> +		/* In rare case that frontend is disconnected while
> +		 * there's still SKBs stuck in netback internal
> +		 * rx_queue, drop these SKBs.
> +		 */
> +		if (unlikely(!vif->ring_mapped)) {
> +			dev_kfree_skb(skb);
> +			xenvif_put(vif);
> +			continue;
> +		}

Is this racy?  The ring may be unmapped after the test but before we put
responses on it.

David