APPLIED: [PATCH][trusty/utopic SRU] xen-netfront: Remove BUGs on paged skb data which crosses a page boundary

Brad Figg brad.figg at canonical.com
Thu Dec 4 18:06:27 UTC 2014


On 12/04/2014 07:06 AM, Seth Forshee wrote:
> These BUGs can be erroneously triggered by frags which refer to
> tail pages within a compound page. The data in these pages may
> overrun the hardware page while still being contained within the
> compound page, but since compound_order() evaluates to 0 for tail
> pages the assertion fails. The code already iterates through
> subsequent pages correctly in this scenario, so the BUGs are
> unnecessary and can be removed.
> 
> Fixes: f36c374782e4 ("xen/netfront: handle compound page fragments on transmit")
> Cc: <stable at vger.kernel.org> # 3.7+
> Signed-off-by: Seth Forshee <seth.forshee at canonical.com>
> Reviewed-by: David Vrabel <david.vrabel at citrix.com>
> Signed-off-by: David S. Miller <davem at davemloft.net>
> (cherry picked from commit 8d609725d4357f499e2103e46011308b32f53513)
> BugLink: http://bugs.launchpad.net/bugs/1275879
> ---
>  drivers/net/xen-netfront.c | 5 -----
>  1 file changed, 5 deletions(-)
> 
> diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
> index fff9bbe..69e0cd6 100644
> --- a/drivers/net/xen-netfront.c
> +++ b/drivers/net/xen-netfront.c
> @@ -469,9 +469,6 @@ static void xennet_make_frags(struct sk_buff *skb, struct net_device *dev,
>  		len = skb_frag_size(frag);
>  		offset = frag->page_offset;
>  
> -		/* Data must not cross a page boundary. */
> -		BUG_ON(len + offset > PAGE_SIZE<<compound_order(page));
> -
>  		/* Skip unused frames from start of page */
>  		page += offset >> PAGE_SHIFT;
>  		offset &= ~PAGE_MASK;
> @@ -479,8 +476,6 @@ static void xennet_make_frags(struct sk_buff *skb, struct net_device *dev,
>  		while (len > 0) {
>  			unsigned long bytes;
>  
> -			BUG_ON(offset >= PAGE_SIZE);
> -
>  			bytes = PAGE_SIZE - offset;
>  			if (bytes > len)
>  				bytes = len;
> 


-- 
Brad Figg brad.figg at canonical.com http://www.canonical.com




More information about the kernel-team mailing list