iwmc3200wifi: Fix test of unsigned in iwm_ntf_stop_resume_tx()
PATCH 1/1 iwmc3200wifi: Fix test of unsigned in iwm_ntf_stop_resume_tx()
`queue' is unsigned so the test did not work.
---
Found using coccinelle: http://coccinelle.lip6.fr/
drivers/net/wireless/iwmc3200wifi/rx.c +1 -1
@@ -1128,7 +1128,7 @@ static int iwm_ntf_stop_resume_tx(struct iwm_priv *iwm, u8 *buf,struct iwm_tx_queue *txq;u16 queue =iwm_tid_to_queue (bit); -if (queue <0 ) +if (queue == -EINVAL )continue ; txq = &iwm->txq[queue];
Quoted 11 lines · Roel Kluin
`queue' is unsigned so the test did not work.
Signed-off-by Roel Kluin <[email protected]>---
Found using coccinelle: http://coccinelle.lip6.fr/drivers/net/wireless/iwmc3200wifi/rx.c +0
-0
drivers/net/wireless/iwmc3200wifi/rx.c static int iwm_ntf_stop_resume_tx(struct iwm_priv *iwm, u8 *buf, · line 1131
Quoted 5 lines
drivers/net/wireless/iwmc3200wifi/rx.c +1
-1@@ -1128,7 +1128,7 @@ static int iwm_ntf_stop_resume_tx(struct iwm_priv *iwm, u8 *buf,struct iwm_tx_queue *txq;u16 queue =iwm_tid_to_queue (bit); -if (queue <0 ) +if (queue == -EINVAL )
I think it's ugly. iwm_tid_to_queue() should return int if it's allowed to return error codes.
Signature · 2 lines
Regards, Pavel Roskin
`queue' was unsigned so the test did not work.
---
Found using coccinelle: http://coccinelle.lip6.fr/
Quoted 5 lines
Review
Quoted 2 lines
(quoted diff) +1
-1- if (queue < 0) + if (queue == -EINVAL)I think it's ugly.
iwm_tid_to_queue()should return int if it's allowed to return error codes.
Ok, how about:
drivers/net/wireless/iwmc3200wifi/iwm.h | 2 +- drivers/net/wireless/iwmc3200wifi/netdev.c | 2 +- drivers/net/wireless/iwmc3200wifi/rx.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
drivers/net/wireless/iwmc3200wifi/iwm.h +1 -1
@@ -349,7 +349,7 @@ int iwm_up(struct iwm_priv *iwm);int iwm_down (struct iwm_priv *iwm);/* TX API */ -u16 iwm_tid_to_queue (u16 tid); +int iwm_tid_to_queue (u16 tid);void iwm_tx_credit_inc (struct iwm_priv *iwm,int id,int total_freed_pages);void iwm_tx_worker (struct work_struct *work);int iwm_xmit_frame (struct sk_buff *skb,struct net_device *netdev);
drivers/net/wireless/iwmc3200wifi/netdev.c +1 -1
@@ -76,7 +76,7 @@ static int iwm_stop(struct net_device *ndev)*/ static const u16 iwm_1d_to_queue[8 ] = {1 ,0 ,0 ,1 ,2 ,2 ,3 ,3 }; -u16 iwm_tid_to_queue (u16 tid) +int iwm_tid_to_queue (u16 tid) {if (tid >IWM_UMAC_TID_NR -2 )return -EINVAL ;
drivers/net/wireless/iwmc3200wifi/rx.c +1 -1
@@ -1126,7 +1126,7 @@ static int iwm_ntf_stop_resume_tx(struct iwm_priv *iwm, u8 *buf,if (!stop) {struct iwm_tx_queue *txq; -u16 queue =iwm_tid_to_queue (bit); +int queue =iwm_tid_to_queue (bit);if (queue <0 )continue ;
Pavel Roskin
Reviewed-bydrivers/net/wireless/iwmc3200wifi/netdev.c static int iwm_stop(struct net_device *ndev) · line 79
Quoted 4 lines · Roel Kluin
Ok, how about:
drivers/net/wireless/iwmc3200wifi/netdev.c +1
-1-u16 iwm_tid_to_queue (u16 tid) +int iwm_tid_to_queue (u16 tid)
That's much better! Thanks!
Signature · 2 lines
Regards, Pavel Roskin
Zhu Yi
Acked-byQuoted 50 lines · Roel Kluin
`queue' was unsigned so the test did not work.
Signed-off-by Roel Kluin <[email protected]>---
Found using coccinelle: http://coccinelle.lip6.fr/Quoted 5 lines
Review
Quoted 2 lines
(quoted diff) +1
-1- if (queue < 0) + if (queue == -EINVAL)I think it's ugly.
iwm_tid_to_queue()should return int if it's allowed to return error codes.Ok, how about:
drivers/net/wireless/iwmc3200wifi/iwm.h | 2 +- drivers/net/wireless/iwmc3200wifi/netdev.c | 2 +- drivers/net/wireless/iwmc3200wifi/rx.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)drivers/net/wireless/iwmc3200wifi/iwm.h +1
-1@@ -349,7 +349,7 @@ int iwm_up(struct iwm_priv *iwm);int iwm_down (struct iwm_priv *iwm);/* TX API */ -u16 iwm_tid_to_queue (u16 tid); +int iwm_tid_to_queue (u16 tid);void iwm_tx_credit_inc (struct iwm_priv *iwm,int id,int total_freed_pages);void iwm_tx_worker (struct work_struct *work);int iwm_xmit_frame (struct sk_buff *skb,struct net_device *netdev);drivers/net/wireless/iwmc3200wifi/netdev.c +1
-1@@ -76,7 +76,7 @@ static int iwm_stop(struct net_device *ndev)*/ static const u16 iwm_1d_to_queue[8 ] = {1 ,0 ,0 ,1 ,2 ,2 ,3 ,3 }; -u16 iwm_tid_to_queue (u16 tid) +int iwm_tid_to_queue (u16 tid) {if (tid >IWM_UMAC_TID_NR -2 )return -EINVAL ;drivers/net/wireless/iwmc3200wifi/rx.c +0
-0
drivers/net/wireless/iwmc3200wifi/rx.c static int iwm_ntf_stop_resume_tx(struct iwm_priv *iwm, u8 *buf, · line 1132
Quoted 8 lines
drivers/net/wireless/iwmc3200wifi/rx.c +1
-1@@ -1126,7 +1126,7 @@ static int iwm_ntf_stop_resume_tx(struct iwm_priv *iwm, u8 *buf,if (!stop) {struct iwm_tx_queue *txq; -u16 queue =iwm_tid_to_queue (bit); +int queue =iwm_tid_to_queue (bit);if (queue <0 )continue ;
Good catch. Thanks both for the fix.
Thanks,
-yi