[PATCH] xen/netback: Calculate the number of SKB slots required correctly

Subsystems: networking drivers, the rest, xen network backend driver

STALE5200d

3 messages, 3 authors, 2012-05-28 · open the first message on its own page

[PATCH] xen/netback: Calculate the number of SKB slots required correctly

From: Simon Graham <hidden>
Date: 2012-05-24 16:26:59

When calculating the number of slots required for a packet header, the code
was reserving too many slots if the header crossed a page boundary. Since
netbk_gop_skb copies the header to the start of the page, the count of
slots required for the header should be based solely on the header size.

This problem is easy to reproduce if a VIF is bridged to a USB 3G modem
device as the skb->data value always starts near the end of the first page.

Signed-off-by: Simon Graham <redacted>
---
 drivers/net/xen-netback/netback.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index 2596401..f4a6fca 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -325,8 +325,7 @@ unsigned int xen_netbk_count_skb_slots(struct xenvif *vif, struct sk_buff *skb)
 	unsigned int count;
 	int i, copy_off;
 
-	count = DIV_ROUND_UP(
-			offset_in_page(skb->data)+skb_headlen(skb), PAGE_SIZE);
+	count = DIV_ROUND_UP(skb_headlen(skb), PAGE_SIZE);
 
 	copy_off = skb_headlen(skb) % PAGE_SIZE;
 
-- 
1.7.9.1

Re: [PATCH] xen/netback: Calculate the number of SKB slots required correctly

From: David Miller <davem@davemloft.net>
Date: 2012-05-24 20:21:30

From: Simon Graham <redacted>
Date: Thu, 24 May 2012 12:26:07 -0400
When calculating the number of slots required for a packet header, the code
was reserving too many slots if the header crossed a page boundary. Since
netbk_gop_skb copies the header to the start of the page, the count of
slots required for the header should be based solely on the header size.

This problem is easy to reproduce if a VIF is bridged to a USB 3G modem
device as the skb->data value always starts near the end of the first page.

Signed-off-by: Simon Graham <redacted>
Applied.

Re: [PATCH] xen/netback: Calculate the number of SKB slots required correctly

From: Ian Campbell <hidden>
Date: 2012-05-28 08:42:11

On Thu, 2012-05-24 at 21:21 +0100, David Miller wrote:
From: Simon Graham <redacted>
Date: Thu, 24 May 2012 12:26:07 -0400
quoted
When calculating the number of slots required for a packet header, the code
was reserving too many slots if the header crossed a page boundary. Since
netbk_gop_skb copies the header to the start of the page, the count of
slots required for the header should be based solely on the header size.

This problem is easy to reproduce if a VIF is bridged to a USB 3G modem
device as the skb->data value always starts near the end of the first page.

Signed-off-by: Simon Graham <redacted>
Applied.
Thanks both!

Ian.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help