2013-06-03 07:54:46

by Harvey Yang

[permalink] [raw]
Subject: [RFC PATCH 1/1] mwifiex: Remove stop_net_dev_queue operation when uap handling packets forwarding.

Under uap mode mwifiex may stop all net tx queues on forwarding packets. This may stop some tx queues and they never have chance to be waked up... There is also no need to check tx_pending and stop queues here. Because local host has such kind of check when transmitting packets and it's not proper to have forwarding affect local transmitting.

Signed-off-by: Huawei Yang <[email protected]>
---
drivers/net/wireless/mwifiex/uap_txrx.c | 4 ----
1 file changed, 4 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/uap_txrx.c b/drivers/net/wireless/mwifiex/uap_txrx.c
index a018e42..11df2b2 100644
--- a/drivers/net/wireless/mwifiex/uap_txrx.c
+++ b/drivers/net/wireless/mwifiex/uap_txrx.c
@@ -95,10 +95,6 @@ static void mwifiex_uap_queue_bridged_pkt(struct mwifiex_private *priv,
atomic_inc(&adapter->tx_pending);
atomic_inc(&adapter->pending_bridged_pkts);

- if ((atomic_read(&adapter->tx_pending) >= MAX_TX_PENDING)) {
- mwifiex_set_trans_start(priv->netdev);
- mwifiex_stop_net_dev_queue(priv->netdev, priv->adapter);
- }
return;
}

--
1.7.10.4


2013-06-03 18:26:34

by Bing Zhao

[permalink] [raw]
Subject: RE: [RFC PATCH 1/1] mwifiex: Remove stop_net_dev_queue operation when uap handling packets forwarding.

Hi Huawei,

Thanks for the patch.

> Under uap mode mwifiex may stop all net tx queues on forwarding packets. This may stop some tx queues
> and they never have chance to be waked up... There is also no need to check tx_pending and stop
> queues here. Because local host has such kind of check when transmitting packets and it's not proper
> to have forwarding affect local transmitting.
>
> Signed-off-by: Huawei Yang <[email protected]>

Reviewed-by: Avinash Patil <[email protected]>
Acked-by: Bing Zhao <[email protected]>

Thanks,
Bing

> ---
> drivers/net/wireless/mwifiex/uap_txrx.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/drivers/net/wireless/mwifiex/uap_txrx.c b/drivers/net/wireless/mwifiex/uap_txrx.c
> index a018e42..11df2b2 100644
> --- a/drivers/net/wireless/mwifiex/uap_txrx.c
> +++ b/drivers/net/wireless/mwifiex/uap_txrx.c
> @@ -95,10 +95,6 @@ static void mwifiex_uap_queue_bridged_pkt(struct mwifiex_private *priv,
> atomic_inc(&adapter->tx_pending);
> atomic_inc(&adapter->pending_bridged_pkts);
>
> - if ((atomic_read(&adapter->tx_pending) >= MAX_TX_PENDING)) {
> - mwifiex_set_trans_start(priv->netdev);
> - mwifiex_stop_net_dev_queue(priv->netdev, priv->adapter);
> - }
> return;
> }
>
> --
> 1.7.10.4