* [PATCH 1/6 net-next-2.6] vxge: Remove queue_state references
@ 2010-07-08 19:19 Jon Mason
2010-07-08 23:19 ` Jon Mason
0 siblings, 1 reply; 4+ messages in thread
From: Jon Mason @ 2010-07-08 19:19 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Sreenivasa Honnur, Ramkrishna Vepa
Remove queue_state references, as they are no longer necessary.
Also, The driver needs to start/stop the queue regardless of which type
of steering is enabled. Remove checks for TX_MULTIQ_STEERING only and
start/stop for all steering types.
Signed-off-by: Jon Mason <jon.mason@exar.com>
Signed-off-by: Sreenivasa Honnur <sreenivasa.honnur@exar.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@exar.com>
---
drivers/net/vxge/vxge-main.c | 118 +++++++++++++++---------------------------
drivers/net/vxge/vxge-main.h | 10 +---
2 files changed, 42 insertions(+), 86 deletions(-)
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index ed17865..e78703d 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -133,75 +133,48 @@ static inline void VXGE_COMPLETE_ALL_RX(struct vxgedev *vdev)
/*
* MultiQ manipulation helper functions
*/
-void vxge_stop_all_tx_queue(struct vxgedev *vdev)
+static inline int vxge_netif_queue_stopped(struct vxge_fifo *fifo)
{
- int i;
- struct net_device *dev = vdev->ndev;
+ struct net_device *dev = fifo->ndev;
+ struct netdev_queue *txq = NULL;
+ int vpath_no = fifo->driver_id;
+ int ret = 0;
- if (vdev->config.tx_steering_type != TX_MULTIQ_STEERING) {
- for (i = 0; i < vdev->no_of_vpath; i++)
- vdev->vpaths[i].fifo.queue_state = VPATH_QUEUE_STOP;
- }
- netif_tx_stop_all_queues(dev);
+ if (fifo->tx_steering_type)
+ txq = netdev_get_tx_queue(dev, vpath_no);
+ else
+ txq = netdev_get_tx_queue(dev, 0);
+
+ ret = netif_tx_queue_stopped(txq);
+ return ret;
}
void vxge_stop_tx_queue(struct vxge_fifo *fifo)
{
struct net_device *dev = fifo->ndev;
-
struct netdev_queue *txq = NULL;
- if (fifo->tx_steering_type == TX_MULTIQ_STEERING)
+
+ if (fifo->tx_steering_type)
txq = netdev_get_tx_queue(dev, fifo->driver_id);
- else {
+ else
txq = netdev_get_tx_queue(dev, 0);
- fifo->queue_state = VPATH_QUEUE_STOP;
- }
netif_tx_stop_queue(txq);
}
-void vxge_start_all_tx_queue(struct vxgedev *vdev)
-{
- int i;
- struct net_device *dev = vdev->ndev;
-
- if (vdev->config.tx_steering_type != TX_MULTIQ_STEERING) {
- for (i = 0; i < vdev->no_of_vpath; i++)
- vdev->vpaths[i].fifo.queue_state = VPATH_QUEUE_START;
- }
- netif_tx_start_all_queues(dev);
-}
-
-static void vxge_wake_all_tx_queue(struct vxgedev *vdev)
-{
- int i;
- struct net_device *dev = vdev->ndev;
-
- if (vdev->config.tx_steering_type != TX_MULTIQ_STEERING) {
- for (i = 0; i < vdev->no_of_vpath; i++)
- vdev->vpaths[i].fifo.queue_state = VPATH_QUEUE_START;
- }
- netif_tx_wake_all_queues(dev);
-}
-
-void vxge_wake_tx_queue(struct vxge_fifo *fifo, struct sk_buff *skb)
+void vxge_wake_tx_queue(struct vxge_fifo *fifo)
{
struct net_device *dev = fifo->ndev;
-
- int vpath_no = fifo->driver_id;
struct netdev_queue *txq = NULL;
- if (fifo->tx_steering_type == TX_MULTIQ_STEERING) {
+ int vpath_no = fifo->driver_id;
+
+ if (fifo->tx_steering_type)
txq = netdev_get_tx_queue(dev, vpath_no);
- if (netif_tx_queue_stopped(txq))
- netif_tx_wake_queue(txq);
- } else {
+ else
txq = netdev_get_tx_queue(dev, 0);
- if (fifo->queue_state == VPATH_QUEUE_STOP)
- if (netif_tx_queue_stopped(txq)) {
- fifo->queue_state = VPATH_QUEUE_START;
- netif_tx_wake_queue(txq);
- }
- }
+
+ if (netif_tx_queue_stopped(txq))
+ netif_tx_wake_queue(txq);
}
/*
@@ -222,7 +195,7 @@ vxge_callback_link_up(struct __vxge_hw_device *hldev)
vdev->stats.link_up++;
netif_carrier_on(vdev->ndev);
- vxge_wake_all_tx_queue(vdev);
+ netif_tx_wake_all_queues(vdev->ndev);
vxge_debug_entryexit(VXGE_TRACE,
"%s: %s:%d Exiting...", vdev->ndev->name, __func__, __LINE__);
@@ -246,7 +219,7 @@ vxge_callback_link_down(struct __vxge_hw_device *hldev)
vdev->stats.link_down++;
netif_carrier_off(vdev->ndev);
- vxge_stop_all_tx_queue(vdev);
+ netif_tx_stop_all_queues(vdev->ndev);
vxge_debug_entryexit(VXGE_TRACE,
"%s: %s:%d Exiting...", vdev->ndev->name, __func__, __LINE__);
@@ -677,7 +650,7 @@ vxge_xmit_compl(struct __vxge_hw_fifo *fifo_hw, void *dtr,
&dtr, &t_code) == VXGE_HW_OK);
*skb_ptr = done_skb;
- vxge_wake_tx_queue(fifo, skb);
+ vxge_wake_tx_queue(fifo);
vxge_debug_entryexit(VXGE_TRACE,
"%s: %s:%d Exiting...",
@@ -881,17 +854,11 @@ vxge_xmit(struct sk_buff *skb, struct net_device *dev)
return NETDEV_TX_LOCKED;
}
- if (vdev->config.tx_steering_type == TX_MULTIQ_STEERING) {
- if (netif_subqueue_stopped(dev, skb)) {
- spin_unlock_irqrestore(&fifo->tx_lock, flags);
- return NETDEV_TX_BUSY;
- }
- } else if (unlikely(fifo->queue_state == VPATH_QUEUE_STOP)) {
- if (netif_queue_stopped(dev)) {
- spin_unlock_irqrestore(&fifo->tx_lock, flags);
- return NETDEV_TX_BUSY;
- }
+ if (vxge_netif_queue_stopped(fifo)) {
+ spin_unlock_irqrestore(&fifo->tx_lock, flags);
+ return NETDEV_TX_BUSY;
}
+
avail = vxge_hw_fifo_free_txdl_count_get(fifo_hw);
if (avail == 0) {
vxge_debug_tx(VXGE_ERR,
@@ -1478,7 +1445,7 @@ static int vxge_reset_vpath(struct vxgedev *vdev, int vp_id)
clear_bit(vp_id, &vdev->vp_reset);
/* Start the vpath queue */
- vxge_wake_tx_queue(&vdev->vpaths[vp_id].fifo, NULL);
+ vxge_wake_tx_queue(&vdev->vpaths[vp_id].fifo);
return ret;
}
@@ -1513,7 +1480,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
"%s: execution mode is debug, returning..",
vdev->ndev->name);
clear_bit(__VXGE_STATE_CARD_UP, &vdev->state);
- vxge_stop_all_tx_queue(vdev);
+ netif_tx_stop_all_queues(vdev->ndev);
return 0;
}
}
@@ -1523,7 +1490,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
switch (vdev->cric_err_event) {
case VXGE_HW_EVENT_UNKNOWN:
- vxge_stop_all_tx_queue(vdev);
+ netif_tx_stop_all_queues(vdev->ndev);
vxge_debug_init(VXGE_ERR,
"fatal: %s: Disabling device due to"
"unknown error",
@@ -1544,7 +1511,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
case VXGE_HW_EVENT_VPATH_ERR:
break;
case VXGE_HW_EVENT_CRITICAL_ERR:
- vxge_stop_all_tx_queue(vdev);
+ netif_tx_stop_all_queues(vdev->ndev);
vxge_debug_init(VXGE_ERR,
"fatal: %s: Disabling device due to"
"serious error",
@@ -1554,7 +1521,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
ret = -EPERM;
goto out;
case VXGE_HW_EVENT_SERR:
- vxge_stop_all_tx_queue(vdev);
+ netif_tx_stop_all_queues(vdev->ndev);
vxge_debug_init(VXGE_ERR,
"fatal: %s: Disabling device due to"
"serious error",
@@ -1566,7 +1533,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
ret = -EPERM;
goto out;
case VXGE_HW_EVENT_SLOT_FREEZE:
- vxge_stop_all_tx_queue(vdev);
+ netif_tx_stop_all_queues(vdev->ndev);
vxge_debug_init(VXGE_ERR,
"fatal: %s: Disabling device due to"
"slot freeze",
@@ -1580,7 +1547,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
}
if ((event == VXGE_LL_FULL_RESET) || (event == VXGE_LL_START_RESET))
- vxge_stop_all_tx_queue(vdev);
+ netif_tx_stop_all_queues(vdev->ndev);
if (event == VXGE_LL_FULL_RESET) {
status = vxge_reset_all_vpaths(vdev);
@@ -1640,7 +1607,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
vxge_hw_vpath_rx_doorbell_init(vdev->vpaths[i].handle);
}
- vxge_wake_all_tx_queue(vdev);
+ netif_tx_wake_all_queues(vdev->ndev);
}
out:
@@ -2779,7 +2746,7 @@ vxge_open(struct net_device *dev)
vxge_hw_vpath_rx_doorbell_init(vdev->vpaths[i].handle);
}
- vxge_start_all_tx_queue(vdev);
+ netif_tx_start_all_queues(vdev->ndev);
goto out0;
out2:
@@ -2902,7 +2869,7 @@ int do_vxge_close(struct net_device *dev, int do_io)
netif_carrier_off(vdev->ndev);
printk(KERN_NOTICE "%s: Link Down\n", vdev->ndev->name);
- vxge_stop_all_tx_queue(vdev);
+ netif_tx_stop_all_queues(vdev->ndev);
/* Note that at this point xmit() is stopped by upper layer */
if (do_io)
@@ -3215,7 +3182,7 @@ int __devinit vxge_device_register(struct __vxge_hw_device *hldev,
u64 stat;
*vdev_out = NULL;
- if (config->tx_steering_type == TX_MULTIQ_STEERING)
+ if (config->tx_steering_type)
no_of_queue = no_of_vpath;
ndev = alloc_etherdev_mq(sizeof(struct vxgedev),
@@ -3284,9 +3251,6 @@ int __devinit vxge_device_register(struct __vxge_hw_device *hldev,
if (vdev->config.gro_enable)
ndev->features |= NETIF_F_GRO;
- if (vdev->config.tx_steering_type == TX_MULTIQ_STEERING)
- ndev->real_num_tx_queues = no_of_vpath;
-
#ifdef NETIF_F_LLTX
ndev->features |= NETIF_F_LLTX;
#endif
diff --git a/drivers/net/vxge/vxge-main.h b/drivers/net/vxge/vxge-main.h
index 60276b2..a384582 100644
--- a/drivers/net/vxge/vxge-main.h
+++ b/drivers/net/vxge/vxge-main.h
@@ -228,10 +228,6 @@ struct vxge_fifo {
int tx_steering_type;
int indicate_max_pkts;
spinlock_t tx_lock;
- /* flag used to maintain queue state when MULTIQ is not enabled */
-#define VPATH_QUEUE_START 0
-#define VPATH_QUEUE_STOP 1
- int queue_state;
/* Tx stats */
struct vxge_fifo_stats stats;
@@ -447,13 +443,9 @@ int vxge_open_vpaths(struct vxgedev *vdev);
enum vxge_hw_status vxge_reset_all_vpaths(struct vxgedev *vdev);
-void vxge_stop_all_tx_queue(struct vxgedev *vdev);
-
void vxge_stop_tx_queue(struct vxge_fifo *fifo);
-void vxge_start_all_tx_queue(struct vxgedev *vdev);
-
-void vxge_wake_tx_queue(struct vxge_fifo *fifo, struct sk_buff *skb);
+void vxge_wake_tx_queue(struct vxge_fifo *fifo);
enum vxge_hw_status vxge_add_mac_addr(struct vxgedev *vdev,
struct macInfo *mac);
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/6 net-next-2.6] vxge: Remove queue_state references
2010-07-08 19:19 [PATCH 1/6 net-next-2.6] vxge: Remove queue_state references Jon Mason
@ 2010-07-08 23:19 ` Jon Mason
2010-07-09 0:27 ` David Miller
2010-07-09 6:47 ` David Miller
0 siblings, 2 replies; 4+ messages in thread
From: Jon Mason @ 2010-07-08 23:19 UTC (permalink / raw)
To: David Miller; +Cc: netdev@vger.kernel.org, Sreenivasa Honnur, ramkrishna.vepa
On Thu, Jul 08, 2010 at 12:19:57PM -0700, Jon Mason wrote:
> Remove queue_state references, as they are no longer necessary.
>
> Also, The driver needs to start/stop the queue regardless of which type
> of steering is enabled. Remove checks for TX_MULTIQ_STEERING only and
> start/stop for all steering types.
>
> Signed-off-by: Jon Mason <jon.mason@exar.com>
> Signed-off-by: Sreenivasa Honnur <sreenivasa.honnur@exar.com>
> Signed-off-by: Ramkrishna Vepa <ram.vepa@exar.com>
Ram's e-mail address is incorrect in this series. Would you like me
to resubmit with it corrected?
Thanks,
Jon
> ---
> drivers/net/vxge/vxge-main.c | 118 +++++++++++++++---------------------------
> drivers/net/vxge/vxge-main.h | 10 +---
> 2 files changed, 42 insertions(+), 86 deletions(-)
>
> diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
> index ed17865..e78703d 100644
> --- a/drivers/net/vxge/vxge-main.c
> +++ b/drivers/net/vxge/vxge-main.c
> @@ -133,75 +133,48 @@ static inline void VXGE_COMPLETE_ALL_RX(struct vxgedev *vdev)
> /*
> * MultiQ manipulation helper functions
> */
> -void vxge_stop_all_tx_queue(struct vxgedev *vdev)
> +static inline int vxge_netif_queue_stopped(struct vxge_fifo *fifo)
> {
> - int i;
> - struct net_device *dev = vdev->ndev;
> + struct net_device *dev = fifo->ndev;
> + struct netdev_queue *txq = NULL;
> + int vpath_no = fifo->driver_id;
> + int ret = 0;
>
> - if (vdev->config.tx_steering_type != TX_MULTIQ_STEERING) {
> - for (i = 0; i < vdev->no_of_vpath; i++)
> - vdev->vpaths[i].fifo.queue_state = VPATH_QUEUE_STOP;
> - }
> - netif_tx_stop_all_queues(dev);
> + if (fifo->tx_steering_type)
> + txq = netdev_get_tx_queue(dev, vpath_no);
> + else
> + txq = netdev_get_tx_queue(dev, 0);
> +
> + ret = netif_tx_queue_stopped(txq);
> + return ret;
> }
>
> void vxge_stop_tx_queue(struct vxge_fifo *fifo)
> {
> struct net_device *dev = fifo->ndev;
> -
> struct netdev_queue *txq = NULL;
> - if (fifo->tx_steering_type == TX_MULTIQ_STEERING)
> +
> + if (fifo->tx_steering_type)
> txq = netdev_get_tx_queue(dev, fifo->driver_id);
> - else {
> + else
> txq = netdev_get_tx_queue(dev, 0);
> - fifo->queue_state = VPATH_QUEUE_STOP;
> - }
>
> netif_tx_stop_queue(txq);
> }
>
> -void vxge_start_all_tx_queue(struct vxgedev *vdev)
> -{
> - int i;
> - struct net_device *dev = vdev->ndev;
> -
> - if (vdev->config.tx_steering_type != TX_MULTIQ_STEERING) {
> - for (i = 0; i < vdev->no_of_vpath; i++)
> - vdev->vpaths[i].fifo.queue_state = VPATH_QUEUE_START;
> - }
> - netif_tx_start_all_queues(dev);
> -}
> -
> -static void vxge_wake_all_tx_queue(struct vxgedev *vdev)
> -{
> - int i;
> - struct net_device *dev = vdev->ndev;
> -
> - if (vdev->config.tx_steering_type != TX_MULTIQ_STEERING) {
> - for (i = 0; i < vdev->no_of_vpath; i++)
> - vdev->vpaths[i].fifo.queue_state = VPATH_QUEUE_START;
> - }
> - netif_tx_wake_all_queues(dev);
> -}
> -
> -void vxge_wake_tx_queue(struct vxge_fifo *fifo, struct sk_buff *skb)
> +void vxge_wake_tx_queue(struct vxge_fifo *fifo)
> {
> struct net_device *dev = fifo->ndev;
> -
> - int vpath_no = fifo->driver_id;
> struct netdev_queue *txq = NULL;
> - if (fifo->tx_steering_type == TX_MULTIQ_STEERING) {
> + int vpath_no = fifo->driver_id;
> +
> + if (fifo->tx_steering_type)
> txq = netdev_get_tx_queue(dev, vpath_no);
> - if (netif_tx_queue_stopped(txq))
> - netif_tx_wake_queue(txq);
> - } else {
> + else
> txq = netdev_get_tx_queue(dev, 0);
> - if (fifo->queue_state == VPATH_QUEUE_STOP)
> - if (netif_tx_queue_stopped(txq)) {
> - fifo->queue_state = VPATH_QUEUE_START;
> - netif_tx_wake_queue(txq);
> - }
> - }
> +
> + if (netif_tx_queue_stopped(txq))
> + netif_tx_wake_queue(txq);
> }
>
> /*
> @@ -222,7 +195,7 @@ vxge_callback_link_up(struct __vxge_hw_device *hldev)
> vdev->stats.link_up++;
>
> netif_carrier_on(vdev->ndev);
> - vxge_wake_all_tx_queue(vdev);
> + netif_tx_wake_all_queues(vdev->ndev);
>
> vxge_debug_entryexit(VXGE_TRACE,
> "%s: %s:%d Exiting...", vdev->ndev->name, __func__, __LINE__);
> @@ -246,7 +219,7 @@ vxge_callback_link_down(struct __vxge_hw_device *hldev)
>
> vdev->stats.link_down++;
> netif_carrier_off(vdev->ndev);
> - vxge_stop_all_tx_queue(vdev);
> + netif_tx_stop_all_queues(vdev->ndev);
>
> vxge_debug_entryexit(VXGE_TRACE,
> "%s: %s:%d Exiting...", vdev->ndev->name, __func__, __LINE__);
> @@ -677,7 +650,7 @@ vxge_xmit_compl(struct __vxge_hw_fifo *fifo_hw, void *dtr,
> &dtr, &t_code) == VXGE_HW_OK);
>
> *skb_ptr = done_skb;
> - vxge_wake_tx_queue(fifo, skb);
> + vxge_wake_tx_queue(fifo);
>
> vxge_debug_entryexit(VXGE_TRACE,
> "%s: %s:%d Exiting...",
> @@ -881,17 +854,11 @@ vxge_xmit(struct sk_buff *skb, struct net_device *dev)
> return NETDEV_TX_LOCKED;
> }
>
> - if (vdev->config.tx_steering_type == TX_MULTIQ_STEERING) {
> - if (netif_subqueue_stopped(dev, skb)) {
> - spin_unlock_irqrestore(&fifo->tx_lock, flags);
> - return NETDEV_TX_BUSY;
> - }
> - } else if (unlikely(fifo->queue_state == VPATH_QUEUE_STOP)) {
> - if (netif_queue_stopped(dev)) {
> - spin_unlock_irqrestore(&fifo->tx_lock, flags);
> - return NETDEV_TX_BUSY;
> - }
> + if (vxge_netif_queue_stopped(fifo)) {
> + spin_unlock_irqrestore(&fifo->tx_lock, flags);
> + return NETDEV_TX_BUSY;
> }
> +
> avail = vxge_hw_fifo_free_txdl_count_get(fifo_hw);
> if (avail == 0) {
> vxge_debug_tx(VXGE_ERR,
> @@ -1478,7 +1445,7 @@ static int vxge_reset_vpath(struct vxgedev *vdev, int vp_id)
> clear_bit(vp_id, &vdev->vp_reset);
>
> /* Start the vpath queue */
> - vxge_wake_tx_queue(&vdev->vpaths[vp_id].fifo, NULL);
> + vxge_wake_tx_queue(&vdev->vpaths[vp_id].fifo);
>
> return ret;
> }
> @@ -1513,7 +1480,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
> "%s: execution mode is debug, returning..",
> vdev->ndev->name);
> clear_bit(__VXGE_STATE_CARD_UP, &vdev->state);
> - vxge_stop_all_tx_queue(vdev);
> + netif_tx_stop_all_queues(vdev->ndev);
> return 0;
> }
> }
> @@ -1523,7 +1490,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
>
> switch (vdev->cric_err_event) {
> case VXGE_HW_EVENT_UNKNOWN:
> - vxge_stop_all_tx_queue(vdev);
> + netif_tx_stop_all_queues(vdev->ndev);
> vxge_debug_init(VXGE_ERR,
> "fatal: %s: Disabling device due to"
> "unknown error",
> @@ -1544,7 +1511,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
> case VXGE_HW_EVENT_VPATH_ERR:
> break;
> case VXGE_HW_EVENT_CRITICAL_ERR:
> - vxge_stop_all_tx_queue(vdev);
> + netif_tx_stop_all_queues(vdev->ndev);
> vxge_debug_init(VXGE_ERR,
> "fatal: %s: Disabling device due to"
> "serious error",
> @@ -1554,7 +1521,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
> ret = -EPERM;
> goto out;
> case VXGE_HW_EVENT_SERR:
> - vxge_stop_all_tx_queue(vdev);
> + netif_tx_stop_all_queues(vdev->ndev);
> vxge_debug_init(VXGE_ERR,
> "fatal: %s: Disabling device due to"
> "serious error",
> @@ -1566,7 +1533,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
> ret = -EPERM;
> goto out;
> case VXGE_HW_EVENT_SLOT_FREEZE:
> - vxge_stop_all_tx_queue(vdev);
> + netif_tx_stop_all_queues(vdev->ndev);
> vxge_debug_init(VXGE_ERR,
> "fatal: %s: Disabling device due to"
> "slot freeze",
> @@ -1580,7 +1547,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
> }
>
> if ((event == VXGE_LL_FULL_RESET) || (event == VXGE_LL_START_RESET))
> - vxge_stop_all_tx_queue(vdev);
> + netif_tx_stop_all_queues(vdev->ndev);
>
> if (event == VXGE_LL_FULL_RESET) {
> status = vxge_reset_all_vpaths(vdev);
> @@ -1640,7 +1607,7 @@ static int do_vxge_reset(struct vxgedev *vdev, int event)
> vxge_hw_vpath_rx_doorbell_init(vdev->vpaths[i].handle);
> }
>
> - vxge_wake_all_tx_queue(vdev);
> + netif_tx_wake_all_queues(vdev->ndev);
> }
>
> out:
> @@ -2779,7 +2746,7 @@ vxge_open(struct net_device *dev)
> vxge_hw_vpath_rx_doorbell_init(vdev->vpaths[i].handle);
> }
>
> - vxge_start_all_tx_queue(vdev);
> + netif_tx_start_all_queues(vdev->ndev);
> goto out0;
>
> out2:
> @@ -2902,7 +2869,7 @@ int do_vxge_close(struct net_device *dev, int do_io)
>
> netif_carrier_off(vdev->ndev);
> printk(KERN_NOTICE "%s: Link Down\n", vdev->ndev->name);
> - vxge_stop_all_tx_queue(vdev);
> + netif_tx_stop_all_queues(vdev->ndev);
>
> /* Note that at this point xmit() is stopped by upper layer */
> if (do_io)
> @@ -3215,7 +3182,7 @@ int __devinit vxge_device_register(struct __vxge_hw_device *hldev,
> u64 stat;
>
> *vdev_out = NULL;
> - if (config->tx_steering_type == TX_MULTIQ_STEERING)
> + if (config->tx_steering_type)
> no_of_queue = no_of_vpath;
>
> ndev = alloc_etherdev_mq(sizeof(struct vxgedev),
> @@ -3284,9 +3251,6 @@ int __devinit vxge_device_register(struct __vxge_hw_device *hldev,
> if (vdev->config.gro_enable)
> ndev->features |= NETIF_F_GRO;
>
> - if (vdev->config.tx_steering_type == TX_MULTIQ_STEERING)
> - ndev->real_num_tx_queues = no_of_vpath;
> -
> #ifdef NETIF_F_LLTX
> ndev->features |= NETIF_F_LLTX;
> #endif
> diff --git a/drivers/net/vxge/vxge-main.h b/drivers/net/vxge/vxge-main.h
> index 60276b2..a384582 100644
> --- a/drivers/net/vxge/vxge-main.h
> +++ b/drivers/net/vxge/vxge-main.h
> @@ -228,10 +228,6 @@ struct vxge_fifo {
> int tx_steering_type;
> int indicate_max_pkts;
> spinlock_t tx_lock;
> - /* flag used to maintain queue state when MULTIQ is not enabled */
> -#define VPATH_QUEUE_START 0
> -#define VPATH_QUEUE_STOP 1
> - int queue_state;
>
> /* Tx stats */
> struct vxge_fifo_stats stats;
> @@ -447,13 +443,9 @@ int vxge_open_vpaths(struct vxgedev *vdev);
>
> enum vxge_hw_status vxge_reset_all_vpaths(struct vxgedev *vdev);
>
> -void vxge_stop_all_tx_queue(struct vxgedev *vdev);
> -
> void vxge_stop_tx_queue(struct vxge_fifo *fifo);
>
> -void vxge_start_all_tx_queue(struct vxgedev *vdev);
> -
> -void vxge_wake_tx_queue(struct vxge_fifo *fifo, struct sk_buff *skb);
> +void vxge_wake_tx_queue(struct vxge_fifo *fifo);
>
> enum vxge_hw_status vxge_add_mac_addr(struct vxgedev *vdev,
> struct macInfo *mac);
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/6 net-next-2.6] vxge: Remove queue_state references
2010-07-08 23:19 ` Jon Mason
@ 2010-07-09 0:27 ` David Miller
2010-07-09 6:47 ` David Miller
1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2010-07-09 0:27 UTC (permalink / raw)
To: jon.mason; +Cc: netdev, Sreenivasa.Honnur, ramkrishna.vepa
From: Jon Mason <jon.mason@exar.com>
Date: Thu, 8 Jul 2010 18:19:37 -0500
> On Thu, Jul 08, 2010 at 12:19:57PM -0700, Jon Mason wrote:
>> Remove queue_state references, as they are no longer necessary.
>>
>> Also, The driver needs to start/stop the queue regardless of which type
>> of steering is enabled. Remove checks for TX_MULTIQ_STEERING only and
>> start/stop for all steering types.
>>
>> Signed-off-by: Jon Mason <jon.mason@exar.com>
>> Signed-off-by: Sreenivasa Honnur <sreenivasa.honnur@exar.com>
>> Signed-off-by: Ramkrishna Vepa <ram.vepa@exar.com>
>
> Ram's e-mail address is incorrect in this series. Would you like me
> to resubmit with it corrected?
I can fix it up.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/6 net-next-2.6] vxge: Remove queue_state references
2010-07-08 23:19 ` Jon Mason
2010-07-09 0:27 ` David Miller
@ 2010-07-09 6:47 ` David Miller
1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2010-07-09 6:47 UTC (permalink / raw)
To: jon.mason; +Cc: netdev, Sreenivasa.Honnur, ramkrishna.vepa
From: Jon Mason <jon.mason@exar.com>
Date: Thu, 8 Jul 2010 18:19:37 -0500
> On Thu, Jul 08, 2010 at 12:19:57PM -0700, Jon Mason wrote:
>> Remove queue_state references, as they are no longer necessary.
>>
>> Also, The driver needs to start/stop the queue regardless of which type
>> of steering is enabled. Remove checks for TX_MULTIQ_STEERING only and
>> start/stop for all steering types.
>>
>> Signed-off-by: Jon Mason <jon.mason@exar.com>
>> Signed-off-by: Sreenivasa Honnur <sreenivasa.honnur@exar.com>
>> Signed-off-by: Ramkrishna Vepa <ram.vepa@exar.com>
>
> Ram's e-mail address is incorrect in this series. Would you like me
> to resubmit with it corrected?
The series ended up needing to be respun anyways since the
txq->trans_start change is invalid.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-07-09 6:47 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-08 19:19 [PATCH 1/6 net-next-2.6] vxge: Remove queue_state references Jon Mason
2010-07-08 23:19 ` Jon Mason
2010-07-09 0:27 ` David Miller
2010-07-09 6:47 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).