SOURCES (LINUX_2_6): kernel-imq.patch - raw 2.6.25 + imq-2.6.27-hotfix.patc...
arekm
arekm at pld-linux.org
Wed Dec 17 21:19:51 CET 2008
Author: arekm Date: Wed Dec 17 20:19:51 2008 GMT
Module: SOURCES Tag: LINUX_2_6
---- Log message:
- raw 2.6.25 + imq-2.6.27-hotfix.patch (untested)
---- Files affected:
SOURCES:
kernel-imq.patch (1.1.2.1.2.12 -> 1.1.2.1.2.13)
---- Diffs:
================================================================
Index: SOURCES/kernel-imq.patch
diff -u SOURCES/kernel-imq.patch:1.1.2.1.2.12 SOURCES/kernel-imq.patch:1.1.2.1.2.13
--- SOURCES/kernel-imq.patch:1.1.2.1.2.12 Mon Nov 3 23:50:54 2008
+++ SOURCES/kernel-imq.patch Wed Dec 17 21:19:45 2008
@@ -79,7 +79,7 @@
+
+struct imq_private {
+ struct tasklet_struct tasklet;
-+ long tasklet_pending;
++ int tasklet_pending;
+};
+
+static nf_hookfn imq_nf_hook;
@@ -222,8 +222,8 @@
+ dev->stats.rx_bytes += entry->skb->len;
+ dev->stats.rx_packets++;
+
-+ netif_tx_lock_bh(dev);
-+ q = netdev_get_tx_queue(dev, queue_num)->qdisc;
++ spin_lock_bh(&dev->queue_lock);
++ q = dev->qdisc;
+ if (q->enqueue) {
+ q->enqueue(skb_get(entry->skb), q);
+ if (skb_shared(entry->skb)) {
@@ -234,7 +234,7 @@
+ }
+ if (!test_and_set_bit(1, &priv->tasklet_pending))
+ tasklet_schedule(&priv->tasklet);
-+ netif_tx_unlock_bh(dev);
++ spin_unlock_bh(&dev->queue_lock);
+
+ if (skb2)
+ kfree_skb(ret ? entry->skb : skb2);
@@ -252,10 +252,10 @@
+ struct net_device *dev = (struct net_device *)arg;
+ struct imq_private *priv = netdev_priv(dev);
+
-+ netif_tx_lock(dev);
-+ qdisc_run(netdev_get_tx_queue(dev, 0)->qdisc);
++ spin_lock(&dev->queue_lock);
++ qdisc_run(dev);
+ clear_bit(1, &priv->tasklet_pending);
-+ netif_tx_unlock(dev);
++ spin_unlock(&dev->queue_lock);
+}
+
+static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb,
@@ -609,8 +609,14 @@
select CRC32
--- linux-2.6.25.7/drivers/net/Makefile 2008-06-16 23:24:36.000000000 +0300
+++ linux-2.6.25.7.imq/drivers/net/Makefile 2008-06-17 14:56:58.000000000 +0300
-@@ -0,0 +0,1 @@
+@@ -143,6 +143,7 @@
+ obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o
+
+ obj-$(CONFIG_DUMMY) += dummy.o
+obj-$(CONFIG_IMQ) += imq.o
+ obj-$(CONFIG_IFB) += ifb.o
+ obj-$(CONFIG_MACVLAN) += macvlan.o
+ obj-$(CONFIG_DE600) += de600.o
--- linux-2.6.25.7/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200
+++ linux-2.6.25.7.imq/include/linux/imq.h 2008-06-17 14:56:58.000000000 +0300
@@ -0,0 +1,9 @@
@@ -788,8 +794,14 @@
depends on IP_NF_FILTER
--- linux-2.6.25.7/net/ipv4/netfilter/Makefile 2008-06-16 23:24:36.000000000 +0300
+++ linux-2.6.25.7.imq/net/ipv4/netfilter/Makefile 2008-06-17 14:56:58.000000000 +0300
-@@ -0,0 +0,1 @@
+@@ -51,6 +51,7 @@
+ obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
+ obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
+ obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o
+obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o
+ obj-$(CONFIG_IP_NF_TARGET_IPV4OPTSSTRIP) += ipt_IPV4OPTSSTRIP.o
+ obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o
+ obj-$(CONFIG_IP_NF_TARGET_NETMAP) += ipt_NETMAP.o
--- linux-2.6.25.7/net/ipv6/netfilter/ip6t_IMQ.c 1970-01-01 02:00:00.000000000 +0200
+++ linux-2.6.25.7.imq/net/ipv6/netfilter/ip6t_IMQ.c 2008-06-17 14:56:58.000000000 +0300
@@ -0,0 +1,69 @@
@@ -882,8 +894,14 @@
depends on IP6_NF_MANGLE
--- linux-2.6.25.7/net/ipv6/netfilter/Makefile 2008-06-16 23:24:36.000000000 +0300
+++ linux-2.6.25.7.imq/net/ipv6/netfilter/Makefile 2008-06-17 14:56:58.000000000 +0300
-@@ -0,0 +0,1 @@
+@@ -6,6 +6,7 @@
+ obj-$(CONFIG_IP6_NF_IPTABLES) += ip6_tables.o
+ obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o
+ obj-$(CONFIG_IP6_NF_MANGLE) += ip6table_mangle.o
+obj-$(CONFIG_IP6_NF_TARGET_IMQ) += ip6t_IMQ.o
+ obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o
+ obj-$(CONFIG_IP6_NF_RAW) += ip6table_raw.o
+
--- linux-2.6.25.7/net/sched/sch_generic.c 2008-06-16 23:24:36.000000000 +0300
+++ linux-2.6.25.7.imq/net/sched/sch_generic.c 2008-06-17 14:56:58.000000000 +0300
@@ -203,6 +203,7 @@
@@ -894,3 +912,49 @@
static void dev_watchdog(unsigned long arg)
{
+only in patch2:
+--- linux-2.6.27/drivers/net/imq.c.orig 2008-10-17 09:14:36.000000000 +0000
++++ linux-2.6.27/drivers/net/imq.c 2008-10-20 09:06:40.000000000 +0000
+@@ -76,7 +76,7 @@
+
+ struct imq_private {
+ struct tasklet_struct tasklet;
+- int tasklet_pending;
++ long tasklet_pending;
+ };
+
+ static nf_hookfn imq_nf_hook;
+@@ -219,8 +219,8 @@
+ dev->stats.rx_bytes += entry->skb->len;
+ dev->stats.rx_packets++;
+
+- spin_lock_bh(&dev->queue_lock);
+- q = dev->qdisc;
++ netif_tx_lock_bh(dev);
++ q = netdev_get_tx_queue(dev, queue_num)->qdisc;
+ if (q->enqueue) {
+ q->enqueue(skb_get(entry->skb), q);
+ if (skb_shared(entry->skb)) {
+@@ -231,7 +231,7 @@
+ }
+ if (!test_and_set_bit(1, &priv->tasklet_pending))
+ tasklet_schedule(&priv->tasklet);
+- spin_unlock_bh(&dev->queue_lock);
++ netif_tx_unlock_bh(dev);
+
+ if (skb2)
+ kfree_skb(ret ? entry->skb : skb2);
+@@ -249,10 +249,10 @@
+ struct net_device *dev = (struct net_device *)arg;
+ struct imq_private *priv = netdev_priv(dev);
+
+- spin_lock(&dev->queue_lock);
+- qdisc_run(dev);
++ netif_tx_lock(dev);
++ qdisc_run(netdev_get_tx_queue(dev, 0)->qdisc);
+ clear_bit(1, &priv->tasklet_pending);
+- spin_unlock(&dev->queue_lock);
++ netif_tx_unlock(dev);
+ }
+
+ static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb,
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/kernel-imq.patch?r1=1.1.2.1.2.12&r2=1.1.2.1.2.13&f=u
More information about the pld-cvs-commit
mailing list