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)
downloadkernel_samsung_smdk4412-3a3d5756ac552ee2d2cca6ba0912f0ff328e8357.zip
kernel_samsung_smdk4412-3a3d5756ac552ee2d2cca6ba0912f0ff328e8357.tar.gz
kernel_samsung_smdk4412-3a3d5756ac552ee2d2cca6ba0912f0ff328e8357.tar.bz2
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 64b88eb..fdc0a94 100644
--- a/drivers/net/s2io.h
+++ b/drivers/net/s2io.h
@@ -464,6 +464,7 @@ struct config_param {
int max_mc_addr; /* xena=64 herc=256 */
int max_mac_addr; /* xena=16 herc=64 */
int mc_start_offset; /* xena=16 herc=64 */
+ u8 multiq;
};
/* Structure representing MAC Addrs */
@@ -720,6 +721,15 @@ struct fifo_info {
* the buffers
*/
struct tx_curr_get_info tx_curr_get_info;
+#define FIFO_QUEUE_START 0
+#define FIFO_QUEUE_STOP 1
+ int queue_state;
+
+ /* copy of sp->dev pointer */
+ struct net_device *dev;
+
+ /* copy of multiq status */
+ u8 multiq;
/* Per fifo lock */
spinlock_t tx_lock;