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