[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20181218150619.6964-1-jgross@suse.com>
Date: Tue, 18 Dec 2018 16:06:19 +0100
From: Juergen Gross <jgross@...e.com>
To: linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
xen-devel@...ts.xenproject.org
Cc: davem@...emloft.net, sstabellini@...nel.org,
boris.ostrovsky@...cle.com, Juergen Gross <jgross@...e.com>,
stable@...r.kernel.org
Subject: [PATCH] xen/netfront: tolerate frags with no data
At least old Xen net backends seem to send frags with no real data
sometimes. In case such a fragment happens to occur with the frag limit
already reached the frontend will BUG currently even if this situation
is easily recoverable.
Modify the BUG_ON() condition accordingly.
Cc: stable@...r.kernel.org
Tested-by: Dietmar Hahn <dietmar.hahn@...fujitsu.com>
Signed-off-by: Juergen Gross <jgross@...e.com>
---
drivers/net/xen-netfront.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index f17f602e6171..5b97cc946d70 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -905,7 +905,7 @@ static RING_IDX xennet_fill_frags(struct netfront_queue *queue,
if (skb_shinfo(skb)->nr_frags == MAX_SKB_FRAGS) {
unsigned int pull_to = NETFRONT_SKB_CB(skb)->pull_to;
- BUG_ON(pull_to <= skb_headlen(skb));
+ BUG_ON(pull_to < skb_headlen(skb));
__pskb_pull_tail(skb, pull_to - skb_headlen(skb));
}
if (unlikely(skb_shinfo(skb)->nr_frags >= MAX_SKB_FRAGS)) {
--
2.16.4
Powered by blists - more mailing lists