rt2x00: fix a crash in the recent update (#14467)
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 38808
This commit is contained in:
parent
ff17114ba1
commit
d923eab86e
4 changed files with 23 additions and 4 deletions
|
@ -4508,3 +4508,22 @@
|
||||||
#define AR_CH0_TOP (AR_SREV_9300(ah) ? 0x16288 : \
|
#define AR_CH0_TOP (AR_SREV_9300(ah) ? 0x16288 : \
|
||||||
(((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x1628c : 0x16280)))
|
(((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x1628c : 0x16280)))
|
||||||
#define AR_CH0_TOP_XPABIASLVL (AR_SREV_9550(ah) ? 0x3c0 : 0x300)
|
#define AR_CH0_TOP_XPABIASLVL (AR_SREV_9550(ah) ? 0x3c0 : 0x300)
|
||||||
|
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
|
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
|
@@ -181,6 +181,7 @@ static void rt2x00lib_autowakeup(struct
|
||||||
|
static void rt2x00lib_bc_buffer_iter(void *data, u8 *mac,
|
||||||
|
struct ieee80211_vif *vif)
|
||||||
|
{
|
||||||
|
+ struct ieee80211_tx_control control = {};
|
||||||
|
struct rt2x00_dev *rt2x00dev = data;
|
||||||
|
struct sk_buff *skb;
|
||||||
|
|
||||||
|
@@ -195,7 +196,7 @@ static void rt2x00lib_bc_buffer_iter(voi
|
||||||
|
*/
|
||||||
|
skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif);
|
||||||
|
while (skb) {
|
||||||
|
- rt2x00mac_tx(rt2x00dev->hw, NULL, skb);
|
||||||
|
+ rt2x00mac_tx(rt2x00dev->hw, &control, skb);
|
||||||
|
skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -127,7 +127,7 @@
|
||||||
DECLARE_KFIFO_PTR(txstatus_fifo, u32);
|
DECLARE_KFIFO_PTR(txstatus_fifo, u32);
|
||||||
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
@@ -1325,6 +1325,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
|
@@ -1326,6 +1326,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
|
||||||
INIT_DELAYED_WORK(&rt2x00dev->autowakeup_work, rt2x00lib_autowakeup);
|
INIT_DELAYED_WORK(&rt2x00dev->autowakeup_work, rt2x00lib_autowakeup);
|
||||||
INIT_WORK(&rt2x00dev->sleep_work, rt2x00lib_sleep);
|
INIT_WORK(&rt2x00dev->sleep_work, rt2x00lib_sleep);
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
/*
|
/*
|
||||||
* Let the driver probe the device to detect the capabilities.
|
* Let the driver probe the device to detect the capabilities.
|
||||||
*/
|
*/
|
||||||
@@ -1455,6 +1459,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
|
@@ -1456,6 +1460,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
|
||||||
*/
|
*/
|
||||||
if (rt2x00dev->drv_data)
|
if (rt2x00dev->drv_data)
|
||||||
kfree(rt2x00dev->drv_data);
|
kfree(rt2x00dev->drv_data);
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#endif /* _RT2X00_PLATFORM_H */
|
#endif /* _RT2X00_PLATFORM_H */
|
||||||
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
@@ -938,6 +938,22 @@ static int rt2x00lib_probe_hw_modes(stru
|
@@ -939,6 +939,22 @@ static int rt2x00lib_probe_hw_modes(stru
|
||||||
unsigned int num_rates;
|
unsigned int num_rates;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
int disable_5ghz;
|
int disable_5ghz;
|
||||||
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
@@ -929,6 +929,18 @@ static void rt2x00lib_rate(struct ieee80
|
@@ -930,6 +930,18 @@ static void rt2x00lib_rate(struct ieee80
|
||||||
entry->flags |= IEEE80211_RATE_SHORT_PREAMBLE;
|
entry->flags |= IEEE80211_RATE_SHORT_PREAMBLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue