[ovs-dev] [PATCH] datapath: Support for Linux kernel 3.9.
Kyle Mestery
kmestery at cisco.com
Fri Jul 26 21:21:08 UTC 2013
Add support for Linux kernel 3.9.
Signed-off-by: Kyle Mestery <kmestery at cisco.com>
CC: Pravin B Shelar <pshelar at nicira.com>
---
datapath/datapath.c | 4 ++--
datapath/vport-netdev.c | 7 +++++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/datapath/datapath.c b/datapath/datapath.c
index 4330ce3..e5e0616 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -63,8 +63,8 @@
#include "vport-netdev.h"
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) || \
- LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)
-#error Kernels before 2.6.18 or after 3.8 are not supported by this version of Open vSwitch.
+ LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
+#error Kernels before 2.6.18 or after 3.9 are not supported by this version of Open vSwitch.
#endif
#define REHASH_FLOW_INTERVAL (10 * 60 * HZ)
diff --git a/datapath/vport-netdev.c b/datapath/vport-netdev.c
index 06598fa..0594db0 100644
--- a/datapath/vport-netdev.c
+++ b/datapath/vport-netdev.c
@@ -301,6 +301,9 @@ static int netdev_send(struct vport *vport, struct sk_buff *skb)
if (netif_needs_gso(skb, features)) {
struct sk_buff *nskb;
+ char cb[sizeof(skb->cb)];
+
+ memcpy(cb, skb->cb, sizeof(cb));
nskb = skb_gso_segment(skb, features);
if (!nskb) {
@@ -316,6 +319,10 @@ static int netdev_send(struct vport *vport, struct sk_buff *skb)
goto drop;
consume_skb(skb);
skb = nskb;
+ while (nskb) {
+ memcpy(nskb->cb, cb, sizeof(cb));
+ nskb = nskb->next;
+ }
len = 0;
do {
--
1.8.3.1
More information about the dev
mailing list