diff --unified --recursive --new-file linux-2.6.21.4/net/Makefile linux-2.6.21.4-1-686-smp-ring3/net/Makefile
--- linux-2.6.21.4/net/Makefile 2007-06-07 21:27:31.000000000 +0000
+++ linux-2.6.21.4-1-686-smp-ring3/net/Makefile 2007-06-10 16:43:04.394423425 +0000
-@@ -42,6 +42,7 @@
- obj-$(CONFIG_DECNET) += decnet/
- obj-$(CONFIG_ECONET) += econet/
- obj-$(CONFIG_VLAN_8021Q) += 8021q/
+@@ -45,6 +45,7 @@
+ ifneq ($(CONFIG_VLAN_8021Q),)
+ obj-y += 8021q/
+ endif
+obj-$(CONFIG_RING) += ring/
obj-$(CONFIG_IP_DCCP) += dccp/
obj-$(CONFIG_IP_SCTP) += sctp/
- obj-$(CONFIG_IEEE80211) += ieee80211/
+ obj-y += wireless/
diff --unified --recursive --new-file linux-2.6.21.4/net/core/dev.c linux-2.6.21.4-1-686-smp-ring3/net/core/dev.c
--- linux-2.6.21.4/net/core/dev.c 2007-06-07 21:27:31.000000000 +0000
+++ linux-2.6.21.4-1-686-smp-ring3/net/core/dev.c 2007-06-10 16:43:04.382422906 +0000
-@@ -117,6 +117,56 @@
- #include <linux/err.h>
- #include <linux/ctype.h>
+@@ -133,6 +133,56 @@
+
+ #include "net-sysfs.h"
+#if defined (CONFIG_RING) || defined(CONFIG_RING_MODULE)
+
/*
* The list of packet types we will receive (as opposed to discard)
* and the routines to invoke.
-@@ -1474,6 +1524,10 @@
+@@ -1809,6 +1859,9 @@
skb->tc_verd = SET_TC_AT(skb->tc_verd,AT_EGRESS);
#endif
if (q->enqueue) {
+#if defined (CONFIG_RING) || defined(CONFIG_RING_MODULE)
+ if(ring_handler) ring_handler(skb, 0, 1);
+#endif /* CONFIG_RING */
-+
- /* Grab device queue */
- spin_lock(&dev->queue_lock);
- q = dev->qdisc;
-@@ -1574,6 +1628,13 @@
+ spinlock_t *root_lock = qdisc_lock(q);
+
+ spin_lock(root_lock);
+@@ -1908,6 +1961,13 @@
unsigned long flags;
/* if netpoll wants it, pretend we never saw it */
if (netpoll_rx(skb))
return NET_RX_DROP;
-@@ -1764,6 +1825,13 @@
- struct net_device *orig_dev;
+@@ -2193,6 +2253,13 @@
+ struct net_device *null_or_orig;
int ret = NET_RX_DROP;
__be16 type;
+#if defined (CONFIG_RING) || defined(CONFIG_RING_MODULE)
+
/* if we've gotten here through NAPI, check netpoll */
- if (skb->dev->poll && netpoll_rx(skb))
+ if (netpoll_receive_skb(skb))
diff --unified --recursive --new-file linux-2.6.21.4/net/ring/Kconfig linux-2.6.21.4-1-686-smp-ring3/net/ring/Kconfig
--- linux-2.6.21.4/net/ring/Kconfig 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.21.4-1-686-smp-ring3/net/ring/Kconfig 2007-06-10 16:43:04.406423944 +0000
* Hardware access:
*/
--#define DEV_NEED_TIMERIRQ 0x00001 /* set the timer irq flag in the irq mask */
-+#define DEV_NEED_TIMERIRQ_ORIG 0x00001 /* set the timer irq flag in the irq mask */
-+#define DEV_NEED_TIMERIRQ 0x00000 /* work-around for Wake-On-Lan functionality */
- #define DEV_NEED_LINKTIMER 0x00002 /* poll link settings. Relies on the timer irq */
- #define DEV_HAS_LARGEDESC 0x00004 /* device supports jumbo frames and needs packet format 2 */
- #define DEV_HAS_HIGH_DMA 0x00008 /* device supports 64bit dma */
+-#define DEV_NEED_TIMERIRQ 0x000001 /* set the timer irq flag in the irq mask */
++#define DEV_NEED_TIMERIRQ_ORIG 0x000001 /* set the timer irq flag in the irq mask */
++#define DEV_NEED_TIMERIRQ 0x000000 /* work-around for Wake-On-Lan functionality */
+ #define DEV_NEED_LINKTIMER 0x000002 /* poll link settings. Relies on the timer irq */
+ #define DEV_HAS_LARGEDESC 0x000004 /* device supports jumbo frames and needs packet format 2 */
+ #define DEV_HAS_HIGH_DMA 0x000008 /* device supports 64bit dma */
@@ -4342,7 +4343,7 @@
np->msi_flags |= 0x0001;
}
{ 0 }
};
---- linux-2.6.17/include/asm-ppc/io.h~ 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-ppc/io.h 2006-06-22 02:44:19.000000000 +0000
+--- linux-2.6.27/arch/powerpc/include/asm/io.h~ 2006-06-18 01:49:35.000000000 +0000
++++ linux-2.6.27/arch/powerpc/include/asm/io.h 2006-06-22 02:44:19.000000000 +0000
@@ -445,6 +445,10 @@
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
#define page_to_bus(page) (page_to_phys(page) + PCI_DRAM_OFFSET)
#include <asm/watchdog.h>
---- linux/include/asm-powerpc/suspend.h 2007-07-09 01:32:17.000000000 +0200
-+++ linux/include/asm-powerpc/suspend.h 2007-08-28 23:26:16.629658848 +0200
+--- linux-2.6.27/arch/powerpc/include/asm/suspend.h 2007-07-09 01:32:17.000000000 +0200
++++ linux-2.6.27/arch/powerpc/include/asm/suspend.h 2007-08-28 23:26:16.629658848 +0200
@@ -6,4 +6,7 @@
void save_processor_state(void);
void restore_processor_state(void);
---- linux-2.6.20/include/asm-sparc64/spinlock.h~ 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20/include/asm-sparc64/spinlock.h 2007-04-10 01:05:35.426190250 +0200
+--- linux-2.6.27/arch/sparc/include/asm/spinlock_64.h~ 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.27/arch/sparc/include/asm/spinlock_64.h 2007-04-10 01:05:35.426190250 +0200
@@ -105,7 +105,7 @@
/* Multi-reader locks, these are much saner than the 32-bit Sparc ones... */
{
return call_prom("getproplen", 2, 1, node, ADDR(pname));
}
---- linux-2.6.20/include/asm-powerpc/spinlock.h~ 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20/include/asm-powerpc/spinlock.h 2007-04-10 02:04:45.976085750 +0200
-@@ -72,7 +72,7 @@
- return tmp;
- }
-
--static int __inline__ __raw_spin_trylock(raw_spinlock_t *lock)
-+static __inline__ int __raw_spin_trylock(raw_spinlock_t *lock)
- {
- CLEAR_IO_SYNC;
- return __spin_trylock(lock) == 0;
-@@ -103,7 +103,7 @@
- #define SHARED_PROCESSOR 0
- #endif
-
--static void __inline__ __raw_spin_lock(raw_spinlock_t *lock)
-+static __inline__ void __raw_spin_lock(raw_spinlock_t *lock)
- {
- CLEAR_IO_SYNC;
- while (1) {
-@@ -118,7 +118,7 @@
- }
- }
-
--static void __inline__ __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags)
-+static __inline__ void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags)
- {
- unsigned long flags_dis;
-
-@@ -179,7 +179,7 @@
- * This returns the old value in the lock + 1,
- * so we got a read lock if the return value is > 0.
- */
--static long __inline__ __read_trylock(raw_rwlock_t *rw)
-+static __inline__ long __read_trylock(raw_rwlock_t *rw)
- {
- long tmp;
-
-@@ -223,7 +223,7 @@
- return tmp;
- }
-
--static void __inline__ __raw_read_lock(raw_rwlock_t *rw)
-+static __inline__ void __raw_read_lock(raw_rwlock_t *rw)
- {
- while (1) {
- if (likely(__read_trylock(rw) > 0))
-@@ -237,7 +237,7 @@
- }
- }
-
--static void __inline__ __raw_write_lock(raw_rwlock_t *rw)
-+static __inline__ void __raw_write_lock(raw_rwlock_t *rw)
- {
- while (1) {
- if (likely(__write_trylock(rw) == 0))
-@@ -251,17 +251,17 @@
- }
- }
-
--static int __inline__ __raw_read_trylock(raw_rwlock_t *rw)
-+static __inline__ int __raw_read_trylock(raw_rwlock_t *rw)
- {
- return __read_trylock(rw) > 0;
- }
-
--static int __inline__ __raw_write_trylock(raw_rwlock_t *rw)
-+static __inline__ int __raw_write_trylock(raw_rwlock_t *rw)
- {
- return __write_trylock(rw) == 0;
- }
-
--static void __inline__ __raw_read_unlock(raw_rwlock_t *rw)
-+static __inline__ void __raw_read_unlock(raw_rwlock_t *rw)
- {
- long tmp;
-
--- linux-2.6.20/include/linux/cpuset.h~ 2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6.20/include/linux/cpuset.h 2007-04-10 02:06:13.121532000 +0200
@@ -33,13 +33,13 @@
* Hardware access:
*/
--#define DEV_NEED_TIMERIRQ 0x00001 /* set the timer irq flag in the irq mask */
-+#define DEV_NEED_TIMERIRQ_ORIG 0x00001 /* set the timer irq flag in the irq mask */
-+#define DEV_NEED_TIMERIRQ 0x00000 /* work-around for Wake-On-Lan functionality */
- #define DEV_NEED_LINKTIMER 0x00002 /* poll link settings. Relies on the timer irq */
- #define DEV_HAS_LARGEDESC 0x00004 /* device supports jumbo frames and needs packet format 2 */
- #define DEV_HAS_HIGH_DMA 0x00008 /* device supports 64bit dma */
+-#define DEV_NEED_TIMERIRQ 0x000001 /* set the timer irq flag in the irq mask */
++#define DEV_NEED_TIMERIRQ_ORIG 0x000001 /* set the timer irq flag in the irq mask */
++#define DEV_NEED_TIMERIRQ 0x000000 /* work-around for Wake-On-Lan functionality */
+ #define DEV_NEED_LINKTIMER 0x000002 /* poll link settings. Relies on the timer irq */
+ #define DEV_HAS_LARGEDESC 0x000004 /* device supports jumbo frames and needs packet format 2 */
+ #define DEV_HAS_HIGH_DMA 0x000008 /* device supports 64bit dma */
@@ -4342,7 +4343,7 @@
np->msi_flags |= 0x0001;
}
---- linux-2.6.20/include/asm-sparc64/spinlock.h~ 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20/include/asm-sparc64/spinlock.h 2007-04-10 01:05:35.426190250 +0200
+--- linux-2.6.27/arch/sparc/include/asm/spinlock_64.h~ 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.27/arch/sparc/include/asm/spinlock_64.h 2007-04-10 01:05:35.426190250 +0200
@@ -105,7 +105,7 @@
/* Multi-reader locks, these are much saner than the 32-bit Sparc ones... */
{
return call_prom("getproplen", 2, 1, node, ADDR(pname));
}
---- linux-2.6.20/include/asm-powerpc/spinlock.h~ 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20/include/asm-powerpc/spinlock.h 2007-04-10 02:04:45.976085750 +0200
-@@ -72,7 +72,7 @@
- return tmp;
- }
-
--static int __inline__ __raw_spin_trylock(raw_spinlock_t *lock)
-+static __inline__ int __raw_spin_trylock(raw_spinlock_t *lock)
- {
- CLEAR_IO_SYNC;
- return __spin_trylock(lock) == 0;
-@@ -103,7 +103,7 @@
- #define SHARED_PROCESSOR 0
- #endif
-
--static void __inline__ __raw_spin_lock(raw_spinlock_t *lock)
-+static __inline__ void __raw_spin_lock(raw_spinlock_t *lock)
- {
- CLEAR_IO_SYNC;
- while (1) {
-@@ -118,7 +118,7 @@
- }
- }
-
--static void __inline__ __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags)
-+static __inline__ void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags)
- {
- unsigned long flags_dis;
-
-@@ -179,7 +179,7 @@
- * This returns the old value in the lock + 1,
- * so we got a read lock if the return value is > 0.
- */
--static long __inline__ __read_trylock(raw_rwlock_t *rw)
-+static __inline__ long __read_trylock(raw_rwlock_t *rw)
- {
- long tmp;
-
-@@ -223,7 +223,7 @@
- return tmp;
- }
-
--static void __inline__ __raw_read_lock(raw_rwlock_t *rw)
-+static __inline__ void __raw_read_lock(raw_rwlock_t *rw)
- {
- while (1) {
- if (likely(__read_trylock(rw) > 0))
-@@ -237,7 +237,7 @@
- }
- }
-
--static void __inline__ __raw_write_lock(raw_rwlock_t *rw)
-+static __inline__ void __raw_write_lock(raw_rwlock_t *rw)
- {
- while (1) {
- if (likely(__write_trylock(rw) == 0))
-@@ -251,17 +251,17 @@
- }
- }
-
--static int __inline__ __raw_read_trylock(raw_rwlock_t *rw)
-+static __inline__ int __raw_read_trylock(raw_rwlock_t *rw)
- {
- return __read_trylock(rw) > 0;
- }
-
--static int __inline__ __raw_write_trylock(raw_rwlock_t *rw)
-+static __inline__ int __raw_write_trylock(raw_rwlock_t *rw)
- {
- return __write_trylock(rw) == 0;
- }
-
--static void __inline__ __raw_read_unlock(raw_rwlock_t *rw)
-+static __inline__ void __raw_read_unlock(raw_rwlock_t *rw)
- {
- long tmp;
-
--- linux-2.6.20/include/linux/cpuset.h~ 2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6.20/include/linux/cpuset.h 2007-04-10 02:06:13.121532000 +0200
@@ -33,13 +33,13 @@
diff --unified --recursive --new-file linux-2.6.21.4/net/Makefile linux-2.6.21.4-1-686-smp-ring3/net/Makefile
--- linux-2.6.21.4/net/Makefile 2007-06-07 21:27:31.000000000 +0000
+++ linux-2.6.21.4-1-686-smp-ring3/net/Makefile 2007-06-10 16:43:04.394423425 +0000
-@@ -42,6 +42,7 @@
- obj-$(CONFIG_DECNET) += decnet/
- obj-$(CONFIG_ECONET) += econet/
- obj-$(CONFIG_VLAN_8021Q) += 8021q/
+@@ -45,6 +45,7 @@
+ ifneq ($(CONFIG_VLAN_8021Q),)
+ obj-y += 8021q/
+ endif
+obj-$(CONFIG_RING) += ring/
obj-$(CONFIG_IP_DCCP) += dccp/
obj-$(CONFIG_IP_SCTP) += sctp/
- obj-$(CONFIG_IEEE80211) += ieee80211/
+ obj-y += wireless/
diff --unified --recursive --new-file linux-2.6.21.4/net/core/dev.c linux-2.6.21.4-1-686-smp-ring3/net/core/dev.c
--- linux-2.6.21.4/net/core/dev.c 2007-06-07 21:27:31.000000000 +0000
+++ linux-2.6.21.4-1-686-smp-ring3/net/core/dev.c 2007-06-10 16:43:04.382422906 +0000
-@@ -117,6 +117,56 @@
- #include <linux/err.h>
- #include <linux/ctype.h>
+@@ -133,6 +133,56 @@
+
+ #include "net-sysfs.h"
+#if defined (CONFIG_RING) || defined(CONFIG_RING_MODULE)
+
/*
* The list of packet types we will receive (as opposed to discard)
* and the routines to invoke.
-@@ -1474,6 +1524,10 @@
+@@ -1809,6 +1859,9 @@
skb->tc_verd = SET_TC_AT(skb->tc_verd,AT_EGRESS);
#endif
if (q->enqueue) {
+#if defined (CONFIG_RING) || defined(CONFIG_RING_MODULE)
+ if(ring_handler) ring_handler(skb, 0, 1);
+#endif /* CONFIG_RING */
-+
- /* Grab device queue */
- spin_lock(&dev->queue_lock);
- q = dev->qdisc;
-@@ -1574,6 +1628,13 @@
+ spinlock_t *root_lock = qdisc_lock(q);
+
+ spin_lock(root_lock);
+@@ -1908,6 +1961,13 @@
unsigned long flags;
/* if netpoll wants it, pretend we never saw it */
if (netpoll_rx(skb))
return NET_RX_DROP;
-@@ -1764,6 +1825,13 @@
- struct net_device *orig_dev;
+@@ -2193,6 +2253,13 @@
+ struct net_device *null_or_orig;
int ret = NET_RX_DROP;
__be16 type;
+#if defined (CONFIG_RING) || defined(CONFIG_RING_MODULE)
+
/* if we've gotten here through NAPI, check netpoll */
- if (skb->dev->poll && netpoll_rx(skb))
+ if (netpoll_receive_skb(skb))
diff --unified --recursive --new-file linux-2.6.21.4/net/ring/Kconfig linux-2.6.21.4-1-686-smp-ring3/net/ring/Kconfig
--- linux-2.6.21.4/net/ring/Kconfig 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.21.4-1-686-smp-ring3/net/ring/Kconfig 2007-06-10 16:43:04.406423944 +0000