From 6e00eab701cdea435adef931a428faa885daa64f Mon Sep 17 00:00:00 2001 From: "kaf24@labyrinth.cl.cam.ac.uk" Date: Thu, 27 Feb 2003 19:12:00 +0000 Subject: bitkeeper revision 1.105.1.4 (3e5e6300OW6aJoXNU_rtBiUn9RxCUQ) network.c, dev.c: Fixed network transmit event dispatch. Was broken and not sending inter-CPU interrupts. --- xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/network/network.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'xenolinux-2.4.21-pre4-sparse') diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/network/network.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/network/network.c index adcff526b4..7ef9ce4ef8 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/network/network.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/network/network.c @@ -23,6 +23,7 @@ #include #include +#include #define NET_TX_IRQ _EVENT_NET_TX #define NET_RX_IRQ _EVENT_NET_RX @@ -185,7 +186,8 @@ static void network_tx_buf_gc(struct net_device *dev) np->tx_idx = i; /* Set a new event, then check for race with update of tx_cons. */ - np->net_ring->tx_event = TX_RING_INC(cons); + np->net_ring->tx_event = + TX_RING_ADD(cons, (atomic_read(&np->tx_entries)>>1) + 1); smp_mb(); } while ( cons != np->net_ring->tx_cons ); -- cgit v1.2.3