|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH 2/2] netfront skb padding
It appears that when alloc'ing a skb, it is bring padded by an arbitrarily
(and excessive) long value. The value for this padding really only needs to
be 24. 24 = 14 for the ethernet header + 2 for the cache alignment + 4 for
the CRC + 4 for the VLAN flags.
Tested on Xen 2.0.3 and linux 2.6.10 kernel.
Signed-off-by: Jon Mason <jdmason@xxxxxxxxxx>
---
--- drivers/xen/netfront/netfront.c.new 2005-02-08 19:09:31.368834000 -0600
+++ drivers/xen/netfront/netfront.c 2005-02-08 19:09:24.738834000 -0600
@@ -50,6 +50,8 @@
#include <asm-xen/balloon.h>
#include <asm/page.h>
+#define NETFRONT_VERSION "1.1"
+
#ifndef __GFP_NOWARN
#define __GFP_NOWARN 0
#endif
@@ -62,8 +64,11 @@
skb_shinfo(_skb)->frag_list = NULL; \
} while (0)
-/* Allow headroom on each rx pkt for Ethernet header, alignment padding, ... */
-#define RX_HEADROOM 200
+/*
+ * Allow headroom on each rx pkt for Ethernet header, alignment padding,
+ * CRC, and VLAN
+ */
+#define RX_HEADROOM ETH_HLEN + NET_IP_ALIGN + 8
/*
* If the backend driver is pipelining transmit requests then we can be very
@@ -1248,7 +1253,8 @@ static int __init netif_init(void)
if (xen_start_info.flags & SIF_INITDOMAIN)
return 0;
- IPRINTK("Initialising virtual ethernet driver.\n");
+ IPRINTK("Initialising virtual ethernet driver, version %s\n",
+ NETFRONT_VERSION);
INIT_LIST_HEAD(&dev_list);
(void)register_inetaddr_notifier(¬ifier_inetdev);
netctrl_init();
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
|
|
|
|
|