From cfaa87a5880278cb90205536a1e41380c323da04 Mon Sep 17 00:00:00 2001 From: Sapan Bhatia Date: Wed, 25 Nov 2009 22:30:09 +0000 Subject: [PATCH] Bug fix that makes the kernel pass the test suite again. --- linux-2.6-521-packet-tagging.patch | 48 +++++++++++++++++++----------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/linux-2.6-521-packet-tagging.patch b/linux-2.6-521-packet-tagging.patch index 3101e30e8..5ad9a15ce 100644 --- a/linux-2.6-521-packet-tagging.patch +++ b/linux-2.6-521-packet-tagging.patch @@ -1,7 +1,7 @@ -diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/include/linux/skbuff.h linux-2.6.27.10-vs2.3.x-P521/include/linux/skbuff.h ---- linux-2.6.27.10-vs2.3.x-P/include/linux/skbuff.h 2008-10-13 14:52:09.000000000 +0200 -+++ linux-2.6.27.10-vs2.3.x-P521/include/linux/skbuff.h 2009-01-12 01:18:23.000000000 +0100 -@@ -330,6 +330,7 @@ struct sk_buff { +diff -Nurb linux-2.6.27-510/include/linux/skbuff.h linux-2.6.27-521/include/linux/skbuff.h +--- linux-2.6.27-510/include/linux/skbuff.h 2008-10-09 18:13:53.000000000 -0400 ++++ linux-2.6.27-521/include/linux/skbuff.h 2009-07-23 10:51:52.000000000 -0400 +@@ -330,6 +330,7 @@ #endif __u32 mark; @@ -9,9 +9,9 @@ diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/inclu __u16 vlan_tci; -diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/core/skbuff.c linux-2.6.27.10-vs2.3.x-P521/net/core/skbuff.c ---- linux-2.6.27.10-vs2.3.x-P/net/core/skbuff.c 2008-10-13 14:52:09.000000000 +0200 -+++ linux-2.6.27.10-vs2.3.x-P521/net/core/skbuff.c 2009-01-12 01:56:55.000000000 +0100 +diff -Nurb linux-2.6.27-510/net/core/skbuff.c linux-2.6.27-521/net/core/skbuff.c +--- linux-2.6.27-510/net/core/skbuff.c 2008-10-09 18:13:53.000000000 -0400 ++++ linux-2.6.27-521/net/core/skbuff.c 2009-07-23 10:51:52.000000000 -0400 @@ -55,6 +55,7 @@ #include #include @@ -20,7 +20,7 @@ diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/c #include #include -@@ -209,6 +210,7 @@ struct sk_buff *__alloc_skb(unsigned int +@@ -209,6 +210,7 @@ skb->data = data; skb_reset_tail_pointer(skb); skb->end = skb->tail + size; @@ -28,7 +28,7 @@ diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/c /* make sure we initialize shinfo sequentially */ shinfo = skb_shinfo(skb); atomic_set(&shinfo->dataref, 1); -@@ -460,6 +462,7 @@ static void __copy_skb_header(struct sk_ +@@ -460,6 +462,7 @@ #endif #endif new->vlan_tci = old->vlan_tci; @@ -36,7 +36,7 @@ diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/c skb_copy_secmark(new, old); } -@@ -490,6 +493,8 @@ static struct sk_buff *__skb_clone(struc +@@ -490,6 +493,8 @@ #endif atomic_set(&n->users, 1); @@ -45,10 +45,22 @@ diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/c atomic_inc(&(skb_shinfo(skb)->dataref)); skb->cloned = 1; -diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/ipv4/af_inet.c linux-2.6.27.10-vs2.3.x-P521/net/ipv4/af_inet.c ---- linux-2.6.27.10-vs2.3.x-P/net/ipv4/af_inet.c 2008-10-13 14:54:20.000000000 +0200 -+++ linux-2.6.27.10-vs2.3.x-P521/net/ipv4/af_inet.c 2009-01-12 01:18:23.000000000 +0100 -@@ -181,6 +181,8 @@ static int inet_autobind(struct sock *sk +diff -Nurb linux-2.6.27-510/net/core/sock.c linux-2.6.27-521/net/core/sock.c +--- linux-2.6.27-510/net/core/sock.c 2009-07-23 10:51:44.000000000 -0400 ++++ linux-2.6.27-521/net/core/sock.c 2009-11-25 17:36:26.000000000 -0500 +@@ -954,6 +954,8 @@ + sk->sk_prot = sk->sk_prot_creator = prot; + sock_lock_init(sk); + sock_net_set(sk, get_net(net)); ++ if (!in_interrupt()) ++ sk->sk_mark = nx_current_nid(); + } + + return sk; +diff -Nurb linux-2.6.27-510/net/ipv4/af_inet.c linux-2.6.27-521/net/ipv4/af_inet.c +--- linux-2.6.27-510/net/ipv4/af_inet.c 2009-07-23 10:51:44.000000000 -0400 ++++ linux-2.6.27-521/net/ipv4/af_inet.c 2009-07-23 10:51:52.000000000 -0400 +@@ -181,6 +181,8 @@ return -EAGAIN; } inet->sport = htons(inet->num); @@ -57,10 +69,10 @@ diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/i } release_sock(sk); return 0; -diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/ipv4/netfilter/ipt_LOG.c linux-2.6.27.10-vs2.3.x-P521/net/ipv4/netfilter/ipt_LOG.c ---- linux-2.6.27.10-vs2.3.x-P/net/ipv4/netfilter/ipt_LOG.c 2008-07-13 23:51:29.000000000 +0200 -+++ linux-2.6.27.10-vs2.3.x-P521/net/ipv4/netfilter/ipt_LOG.c 2009-01-12 01:18:23.000000000 +0100 -@@ -45,6 +45,8 @@ static void dump_packet(const struct nf_ +diff -Nurb linux-2.6.27-510/net/ipv4/netfilter/ipt_LOG.c linux-2.6.27-521/net/ipv4/netfilter/ipt_LOG.c +--- linux-2.6.27-510/net/ipv4/netfilter/ipt_LOG.c 2008-10-09 18:13:53.000000000 -0400 ++++ linux-2.6.27-521/net/ipv4/netfilter/ipt_LOG.c 2009-07-23 10:51:52.000000000 -0400 +@@ -45,6 +45,8 @@ else logflags = NF_LOG_MASK; -- 2.47.0