rt2x00: fix a crash bug in the HT descriptor handling fix
Commit "rt2x00: fix HT TX descriptor settings regression" assumes that the control parameter to rt2x00mac_tx is always non-NULL. There is an internal call in rt2x00lib_bc_buffer_iter where NULL is passed. Fix the resulting crash by adding an initialized dummy on-stack ieee80211_tx_control struct. Cc: stable@vger.kernel.org # 3.7+ Signed-off-by: Felix Fietkau <nbd@openwrt.org> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
6fcbe538be
commit
b4089d6d8e
|
@ -181,6 +181,7 @@ static void rt2x00lib_autowakeup(struct work_struct *work)
|
||||||
static void rt2x00lib_bc_buffer_iter(void *data, u8 *mac,
|
static void rt2x00lib_bc_buffer_iter(void *data, u8 *mac,
|
||||||
struct ieee80211_vif *vif)
|
struct ieee80211_vif *vif)
|
||||||
{
|
{
|
||||||
|
struct ieee80211_tx_control control = {};
|
||||||
struct rt2x00_dev *rt2x00dev = data;
|
struct rt2x00_dev *rt2x00dev = data;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
|
||||||
|
@ -195,7 +196,7 @@ static void rt2x00lib_bc_buffer_iter(void *data, u8 *mac,
|
||||||
*/
|
*/
|
||||||
skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif);
|
skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif);
|
||||||
while (skb) {
|
while (skb) {
|
||||||
rt2x00mac_tx(rt2x00dev->hw, NULL, skb);
|
rt2x00mac_tx(rt2x00dev->hw, &control, skb);
|
||||||
skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif);
|
skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue