aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/s2io.h
diff options
context:
space:
mode:
authorSreenivasa Honnur <Sreenivasa.Honnur@neterion.com>2008-02-20 16:44:07 -0500
committerJeff Garzik <jeff@garzik.org>2008-03-17 07:49:26 -0400
commit3a3d5756ac552ee2d2cca6ba0912f0ff328e8357 (patch)
treecf815d61905778d7fdded30b17b3a17e4406dda2 /drivers/net/s2io.h
parent19a3da6c6e1e74ecac129a079139aaebb63fe6c8 (diff)
S2io: Multiqueue network device support implementation
- Resubmit #3 Multiqueue netwrok device support implementation. - Added a loadable parameter "multiq" to enable/disable multiqueue support, by default it is disabled. - skb->queue_mapping is not used for queue/fifo selection. FIFO selection is based on skb->priority. - Added per FIFO flags FIFO_QUEUE_START and FIFO_QUEUE_STOP. Check this flag for starting and stopping netif queue and update the flags accordingly. - In tx_intr_handler added a check to ensure that we have free TXDs before wak- ing up the queue. - Added helper functions for queue manipulation(start/stop/wakeup) to invoke appropriate netif_ functions. - Calling netif_start/stop for link up/down case respectively. - As per Andi kleen's review comments, using skb->priority field for FIFO selection. Signed-off-by: Surjit Reang <surjit.reang@neterion.com> Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/s2io.h')
-rw-r--r--drivers/net/s2io.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h
index 64b88eb48287..fdc0a94d0a89 100644
--- a/drivers/net/s2io.h
+++ b/drivers/net/s2io.h
@@ -464,6 +464,7 @@ struct config_param {
464 int max_mc_addr; /* xena=64 herc=256 */ 464 int max_mc_addr; /* xena=64 herc=256 */
465 int max_mac_addr; /* xena=16 herc=64 */ 465 int max_mac_addr; /* xena=16 herc=64 */
466 int mc_start_offset; /* xena=16 herc=64 */ 466 int mc_start_offset; /* xena=16 herc=64 */
467 u8 multiq;
467}; 468};
468 469
469/* Structure representing MAC Addrs */ 470/* Structure representing MAC Addrs */
@@ -720,6 +721,15 @@ struct fifo_info {
720 * the buffers 721 * the buffers
721 */ 722 */
722 struct tx_curr_get_info tx_curr_get_info; 723 struct tx_curr_get_info tx_curr_get_info;
724#define FIFO_QUEUE_START 0
725#define FIFO_QUEUE_STOP 1
726 int queue_state;
727
728 /* copy of sp->dev pointer */
729 struct net_device *dev;
730
731 /* copy of multiq status */
732 u8 multiq;
723 733
724 /* Per fifo lock */ 734 /* Per fifo lock */
725 spinlock_t tx_lock; 735 spinlock_t tx_lock;