* [PATCH] rt2x00: fix usage of NULL queue
@ 2011-08-02 11:29 Stanislaw Gruszka
2011-08-02 11:33 ` Ivo Van Doorn
2011-08-02 11:46 ` Gertjan van Wingerde
0 siblings, 2 replies; 3+ messages in thread
From: Stanislaw Gruszka @ 2011-08-02 11:29 UTC (permalink / raw)
To: John W. Linville
Cc: Ivo van Doorn, Gertjan van Wingerde, Helmut Schaa, linux-wireless
We may call rt2x00queue_pause_queue(queue) with queue == NULL. Bug
was introduced by commit 62fe778412b36791b7897cfa139342906fbbf07b
"rt2x00: Fix stuck queue in tx failure case" .
Cc: stable@kernel.org # 3.0+
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/rt2x00/rt2x00mac.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index 8efab39..4ccf238 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -113,7 +113,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
* due to possible race conditions in mac80211.
*/
if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
- goto exit_fail;
+ goto exit_free_skb;
/*
* Use the ATIM queue if appropriate and present.
@@ -127,7 +127,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
ERROR(rt2x00dev,
"Attempt to send packet over invalid queue %d.\n"
"Please file bug report to %s.\n", qid, DRV_PROJECT);
- goto exit_fail;
+ goto exit_free_skb;
}
/*
@@ -159,6 +159,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
exit_fail:
rt2x00queue_pause_queue(queue);
+ exit_free_skb:
dev_kfree_skb_any(skb);
}
EXPORT_SYMBOL_GPL(rt2x00mac_tx);
--
1.7.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] rt2x00: fix usage of NULL queue
2011-08-02 11:29 [PATCH] rt2x00: fix usage of NULL queue Stanislaw Gruszka
@ 2011-08-02 11:33 ` Ivo Van Doorn
2011-08-02 11:46 ` Gertjan van Wingerde
1 sibling, 0 replies; 3+ messages in thread
From: Ivo Van Doorn @ 2011-08-02 11:33 UTC (permalink / raw)
To: Stanislaw Gruszka
Cc: John W. Linville, Gertjan van Wingerde, Helmut Schaa,
linux-wireless
On Tue, Aug 2, 2011 at 1:29 PM, Stanislaw Gruszka <sgruszka@redhat.com> wrote:
> We may call rt2x00queue_pause_queue(queue) with queue == NULL. Bug
> was introduced by commit 62fe778412b36791b7897cfa139342906fbbf07b
> "rt2x00: Fix stuck queue in tx failure case" .
>
> Cc: stable@kernel.org # 3.0+
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
> ---
> drivers/net/wireless/rt2x00/rt2x00mac.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
> index 8efab39..4ccf238 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00mac.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
> @@ -113,7 +113,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
> * due to possible race conditions in mac80211.
> */
> if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
> - goto exit_fail;
> + goto exit_free_skb;
>
> /*
> * Use the ATIM queue if appropriate and present.
> @@ -127,7 +127,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
> ERROR(rt2x00dev,
> "Attempt to send packet over invalid queue %d.\n"
> "Please file bug report to %s.\n", qid, DRV_PROJECT);
> - goto exit_fail;
> + goto exit_free_skb;
> }
>
> /*
> @@ -159,6 +159,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
>
> exit_fail:
> rt2x00queue_pause_queue(queue);
> + exit_free_skb:
> dev_kfree_skb_any(skb);
> }
> EXPORT_SYMBOL_GPL(rt2x00mac_tx);
> --
> 1.7.1
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] rt2x00: fix usage of NULL queue
2011-08-02 11:29 [PATCH] rt2x00: fix usage of NULL queue Stanislaw Gruszka
2011-08-02 11:33 ` Ivo Van Doorn
@ 2011-08-02 11:46 ` Gertjan van Wingerde
1 sibling, 0 replies; 3+ messages in thread
From: Gertjan van Wingerde @ 2011-08-02 11:46 UTC (permalink / raw)
To: Stanislaw Gruszka
Cc: John W. Linville, Ivo van Doorn, Helmut Schaa, linux-wireless
On Tue, Aug 2, 2011 at 1:29 PM, Stanislaw Gruszka <sgruszka@redhat.com> wrote:
> We may call rt2x00queue_pause_queue(queue) with queue == NULL. Bug
> was introduced by commit 62fe778412b36791b7897cfa139342906fbbf07b
> "rt2x00: Fix stuck queue in tx failure case" .
>
> Cc: stable@kernel.org # 3.0+
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Good catch.
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
> ---
> drivers/net/wireless/rt2x00/rt2x00mac.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
> index 8efab39..4ccf238 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00mac.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
> @@ -113,7 +113,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
> * due to possible race conditions in mac80211.
> */
> if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
> - goto exit_fail;
> + goto exit_free_skb;
>
> /*
> * Use the ATIM queue if appropriate and present.
> @@ -127,7 +127,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
> ERROR(rt2x00dev,
> "Attempt to send packet over invalid queue %d.\n"
> "Please file bug report to %s.\n", qid, DRV_PROJECT);
> - goto exit_fail;
> + goto exit_free_skb;
> }
>
> /*
> @@ -159,6 +159,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
>
> exit_fail:
> rt2x00queue_pause_queue(queue);
> + exit_free_skb:
> dev_kfree_skb_any(skb);
> }
> EXPORT_SYMBOL_GPL(rt2x00mac_tx);
> --
> 1.7.1
>
--
---
Gertjan
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-08-02 11:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-02 11:29 [PATCH] rt2x00: fix usage of NULL queue Stanislaw Gruszka
2011-08-02 11:33 ` Ivo Van Doorn
2011-08-02 11:46 ` Gertjan van Wingerde
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox