---- linux-2.6.20-original/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.20/drivers/net/imq.c 2007-02-12 23:55:04.000000000 +0200
+Index: linux-2.6.21.5/drivers/net/imq.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21.5/drivers/net/imq.c 2007-07-02 08:26:03.223788000 +0200
@@ -0,0 +1,402 @@
+/*
+ * Pseudo-driver for the intermediate queue device.
+MODULE_AUTHOR("http://www.linuximq.net");
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
+MODULE_LICENSE("GPL");
---- linux-2.6.20-original/drivers/net/Kconfig 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/drivers/net/Kconfig 2007-02-12 23:55:04.000000000 +0200
+Index: linux-2.6.21.5/drivers/net/Kconfig
+===================================================================
+--- linux-2.6.21.5.orig/drivers/net/Kconfig 2007-07-02 08:25:36.554121250 +0200
++++ linux-2.6.21.5/drivers/net/Kconfig 2007-07-02 08:26:03.719819000 +0200
@@ -96,6 +96,129 @@
To compile this driver as a module, choose M here: the module
will be called eql. If unsure, say N.
+ default "2"
+ help
+
-+ This settings defines how many IMQ devices will be
++ This settings defines how many IMQ devices will be
+ created.
+
+ The default value is 2.
config TUN
tristate "Universal TUN/TAP device driver support"
select CRC32
---- linux-2.6.20-original/drivers/net/Makefile 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/drivers/net/Makefile 2007-02-12 23:55:04.000000000 +0200
+Index: linux-2.6.21.5/drivers/net/Makefile
+===================================================================
+--- linux-2.6.21.5.orig/drivers/net/Makefile 2007-07-02 08:25:36.566122000 +0200
++++ linux-2.6.21.5/drivers/net/Makefile 2007-07-02 08:26:03.859827750 +0200
@@ -124,6 +124,7 @@
obj-$(CONFIG_SLHC) += slhc.o
obj-$(CONFIG_IFB) += ifb.o
obj-$(CONFIG_DE600) += de600.o
obj-$(CONFIG_DE620) += de620.o
---- linux-2.6.20-original/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.20/include/linux/imq.h 2007-02-12 23:55:04.000000000 +0200
+Index: linux-2.6.21.5/include/linux/imq.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21.5/include/linux/imq.h 2007-07-02 08:26:04.311856000 +0200
@@ -0,0 +1,9 @@
+#ifndef _IMQ_H
+#define _IMQ_H
+#define IMQ_F_ENQUEUE 0x80
+
+#endif /* _IMQ_H */
---- linux-2.6.20-original/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.20/include/linux/netfilter_ipv4/ipt_IMQ.h 2007-02-12 23:55:04.000000000 +0200
+Index: linux-2.6.21.5/include/linux/netfilter_ipv4/ipt_IMQ.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21.5/include/linux/netfilter_ipv4/ipt_IMQ.h 2007-07-02 08:26:04.607874500 +0200
@@ -0,0 +1,8 @@
+#ifndef _IPT_IMQ_H
+#define _IPT_IMQ_H
+};
+
+#endif /* _IPT_IMQ_H */
---- linux-2.6.20-original/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.20/include/linux/netfilter_ipv6/ip6t_IMQ.h 2007-02-12 23:55:04.000000000 +0200
+Index: linux-2.6.21.5/include/linux/netfilter_ipv6/ip6t_IMQ.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21.5/include/linux/netfilter_ipv6/ip6t_IMQ.h 2007-07-02 08:26:04.927894500 +0200
@@ -0,0 +1,8 @@
+#ifndef _IP6T_IMQ_H
+#define _IP6T_IMQ_H
+};
+
+#endif /* _IP6T_IMQ_H */
---- linux-2.6.20-original/include/linux/skbuff.h 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/include/linux/skbuff.h 2007-02-12 23:55:04.000000000 +0200
-@@ -293,6 +293,10 @@
+Index: linux-2.6.21.5/include/linux/skbuff.h
+===================================================================
+--- linux-2.6.21.5.orig/include/linux/skbuff.h 2007-07-02 08:25:36.598124000 +0200
++++ linux-2.6.21.5/include/linux/skbuff.h 2007-07-02 08:26:04.983898000 +0200
+@@ -294,6 +294,10 @@
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
struct sk_buff *nfct_reasm;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
struct nf_bridge_info *nf_bridge;
#endif
---- linux-2.6.20-original/net/core/dev.c 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/net/core/dev.c 2007-02-12 23:55:04.000000000 +0200
+Index: linux-2.6.21.5/net/core/dev.c
+===================================================================
+--- linux-2.6.21.5.orig/net/core/dev.c 2007-07-02 08:25:36.606124500 +0200
++++ linux-2.6.21.5/net/core/dev.c 2007-07-02 08:26:04.983898000 +0200
@@ -94,6 +94,9 @@
#include <linux/skbuff.h>
#include <net/sock.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/stat.h>
-@@ -1343,7 +1346,11 @@
+@@ -1340,7 +1343,11 @@
int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
if (likely(!skb->next)) {
dev_queue_xmit_nit(skb, dev);
if (netif_needs_gso(dev, skb)) {
---- linux-2.6.20-original/net/core/skbuff.c 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/net/core/skbuff.c 2007-02-12 23:55:04.000000000 +0200
-@@ -485,6 +485,10 @@
+Index: linux-2.6.21.5/net/core/skbuff.c
+===================================================================
+--- linux-2.6.21.5.orig/net/core/skbuff.c 2007-07-02 08:25:36.618125250 +0200
++++ linux-2.6.21.5/net/core/skbuff.c 2007-07-02 08:26:05.007899500 +0200
+@@ -430,6 +430,10 @@
C(nfct_reasm);
nf_conntrack_get_reasm(skb->nfct_reasm);
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
C(nf_bridge);
nf_bridge_get(skb->nf_bridge);
-@@ -549,6 +553,10 @@
+@@ -494,6 +498,10 @@
#if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE)
new->ipvs_property = old->ipvs_property;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
new->nf_bridge = old->nf_bridge;
nf_bridge_get(old->nf_bridge);
---- linux-2.6.20-original/net/ipv4/netfilter/ipt_IMQ.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.20/net/ipv4/netfilter/ipt_IMQ.c 2007-02-12 23:55:04.000000000 +0200
-@@ -0,0 +1,71 @@
+Index: linux-2.6.21.5/net/ipv4/netfilter/ipt_IMQ.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21.5/net/ipv4/netfilter/ipt_IMQ.c 2007-07-02 08:26:05.055902500 +0200
+@@ -0,0 +1,69 @@
+/*
+ * This target marks packets to be enqueued to an imq device
+ */
+
+ (*pskb)->imq_flags = mr->todev | IMQ_F_ENQUEUE;
+
-+ return IPT_CONTINUE;
++ return XT_CONTINUE;
+}
+
+static int imq_checkentry(const char *tablename,
+ return 1;
+}
+
-+static struct ipt_target ipt_imq_reg = {
++static struct xt_target ipt_imq_reg = {
+ .name = "IMQ",
++ .family = AF_INET,
+ .target = imq_target,
+ .targetsize = sizeof(struct ipt_imq_info),
+ .checkentry = imq_checkentry,
+
+static int __init init(void)
+{
-+ if (xt_register_target(&ipt_imq_reg))
-+ return -EINVAL;
-+
-+ return 0;
++ return xt_register_target(&ipt_imq_reg);
+}
+
+static void __exit fini(void)
+MODULE_AUTHOR("http://www.linuximq.net");
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
+MODULE_LICENSE("GPL");
---- linux-2.6.20-original/net/ipv4/netfilter/Kconfig 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/net/ipv4/netfilter/Kconfig 2007-02-12 23:55:04.000000000 +0200
-@@ -591,6 +591,17 @@
+Index: linux-2.6.21.5/net/ipv4/netfilter/Kconfig
+===================================================================
+--- linux-2.6.21.5.orig/net/ipv4/netfilter/Kconfig 2007-07-02 08:25:36.630126000 +0200
++++ linux-2.6.21.5/net/ipv4/netfilter/Kconfig 2007-07-02 08:26:05.115906250 +0200
+@@ -605,6 +605,17 @@
To compile it as a module, choose M here. If unsure, say N.
config IP_NF_TARGET_TOS
tristate "TOS target support"
depends on IP_NF_MANGLE
---- linux-2.6.20-original/net/ipv4/netfilter/Makefile 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/net/ipv4/netfilter/Makefile 2007-02-12 23:55:04.000000000 +0200
-@@ -96,6 +96,7 @@
+Index: linux-2.6.21.5/net/ipv4/netfilter/Makefile
+===================================================================
+--- linux-2.6.21.5.orig/net/ipv4/netfilter/Makefile 2007-07-02 08:25:36.714131250 +0200
++++ linux-2.6.21.5/net/ipv4/netfilter/Makefile 2007-07-02 08:26:05.175910000 +0200
+@@ -100,6 +100,7 @@
obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o
obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o
obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o
---- linux-2.6.20-original/net/ipv6/netfilter/ip6t_IMQ.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.20/net/ipv6/netfilter/ip6t_IMQ.c 2007-02-12 23:55:04.000000000 +0200
-@@ -0,0 +1,71 @@
+Index: linux-2.6.21.5/net/ipv6/netfilter/ip6t_IMQ.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21.5/net/ipv6/netfilter/ip6t_IMQ.c 2007-07-02 08:26:05.231913500 +0200
+@@ -0,0 +1,69 @@
+/*
+ * This target marks packets to be enqueued to an imq device
+ */
+
+ (*pskb)->imq_flags = mr->todev | IMQ_F_ENQUEUE;
+
-+ return IP6T_CONTINUE;
++ return XT_CONTINUE;
+}
+
+static int imq_checkentry(const char *tablename,
+ return 1;
+}
+
-+static struct ip6t_target ip6t_imq_reg = {
++static struct xt_target ip6t_imq_reg = {
+ .name = "IMQ",
++ .family = AF_INET6,
+ .target = imq_target,
+ .targetsize = sizeof(struct ip6t_imq_info),
+ .table = "mangle",
+
+static int __init init(void)
+{
-+ if (xt_register_target(&ip6t_imq_reg))
-+ return -EINVAL;
-+
-+ return 0;
++ return xt_register_target(&ip6t_imq_reg);
+}
+
+static void __exit fini(void)
+MODULE_AUTHOR("http://www.linuximq.net");
+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information.");
+MODULE_LICENSE("GPL");
---- linux-2.6.20-original/net/ipv6/netfilter/Kconfig 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/net/ipv6/netfilter/Kconfig 2007-02-12 23:55:04.000000000 +0200
-@@ -164,6 +164,15 @@
+Index: linux-2.6.21.5/net/ipv6/netfilter/Kconfig
+===================================================================
+--- linux-2.6.21.5.orig/net/ipv6/netfilter/Kconfig 2007-07-02 08:25:36.726132000 +0200
++++ linux-2.6.21.5/net/ipv6/netfilter/Kconfig 2007-07-02 08:26:05.267915750 +0200
+@@ -173,6 +173,15 @@
To compile it as a module, choose M here. If unsure, say N.
config IP6_NF_TARGET_HL
tristate 'HL (hoplimit) target support'
depends on IP6_NF_MANGLE
---- linux-2.6.20-original/net/ipv6/netfilter/Makefile 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/net/ipv6/netfilter/Makefile 2007-02-12 23:55:04.000000000 +0200
+Index: linux-2.6.21.5/net/ipv6/netfilter/Makefile
+===================================================================
+--- linux-2.6.21.5.orig/net/ipv6/netfilter/Makefile 2007-07-02 08:25:36.738132750 +0200
++++ linux-2.6.21.5/net/ipv6/netfilter/Makefile 2007-07-02 08:26:05.319919000 +0200
@@ -13,6 +13,7 @@
obj-$(CONFIG_IP6_NF_MATCH_OWNER) += ip6t_owner.o
obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o
obj-$(CONFIG_IP6_NF_TARGET_HL) += ip6t_HL.o
obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o
obj-$(CONFIG_IP6_NF_TARGET_LOG) += ip6t_LOG.o
---- linux-2.6.20-original/net/sched/sch_generic.c 2007-02-04 20:44:54.000000000 +0200
-+++ linux-2.6.20/net/sched/sch_generic.c 2007-02-12 23:55:04.000000000 +0200
+Index: linux-2.6.21.5/net/sched/sch_generic.c
+===================================================================
+--- linux-2.6.21.5.orig/net/sched/sch_generic.c 2007-07-02 08:25:36.750133500 +0200
++++ linux-2.6.21.5/net/sched/sch_generic.c 2007-07-02 08:26:05.343920500 +0200
@@ -87,7 +87,6 @@
NOTE: Called under dev->queue_lock with locally disabled BH.