Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
11ad2f52
Commit
11ad2f52
authored
May 27, 2011
by
John W. Linville
Browse files
Options
Browse Files
Download
Plain Diff
Merge
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
into for-davem
parents
c5c177b4
1df85ece
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
70 additions
and
27 deletions
+70
-27
drivers/net/wireless/ath/ath9k/Kconfig
drivers/net/wireless/ath/ath9k/Kconfig
+0
-1
drivers/net/wireless/ath/ath9k/ar9002_calib.c
drivers/net/wireless/ath/ath9k/ar9002_calib.c
+1
-1
drivers/net/wireless/ath/ath9k/ar9003_phy.c
drivers/net/wireless/ath/ath9k/ar9003_phy.c
+22
-0
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/ath/ath9k/hw.c
+4
-1
drivers/net/wireless/ath/ath9k/hw.h
drivers/net/wireless/ath/ath9k/hw.h
+2
-0
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/main.c
+3
-1
drivers/net/wireless/ath/ath9k/rc.c
drivers/net/wireless/ath/ath9k/rc.c
+2
-1
drivers/net/wireless/b43/phy_n.c
drivers/net/wireless/b43/phy_n.c
+1
-1
drivers/net/wireless/iwlegacy/iwl-4965-lib.c
drivers/net/wireless/iwlegacy/iwl-4965-lib.c
+2
-2
drivers/net/wireless/mwifiex/sdio.h
drivers/net/wireless/mwifiex/sdio.h
+2
-2
drivers/net/wireless/rt2x00/Kconfig
drivers/net/wireless/rt2x00/Kconfig
+0
-1
drivers/net/wireless/rtlwifi/pci.c
drivers/net/wireless/rtlwifi/pci.c
+22
-13
net/mac80211/mlme.c
net/mac80211/mlme.c
+7
-0
net/mac80211/scan.c
net/mac80211/scan.c
+0
-1
net/wireless/nl80211.c
net/wireless/nl80211.c
+2
-2
No files found.
drivers/net/wireless/ath/ath9k/Kconfig
View file @
11ad2f52
...
@@ -26,7 +26,6 @@ config ATH9K
...
@@ -26,7 +26,6 @@ config ATH9K
config ATH9K_PCI
config ATH9K_PCI
bool "Atheros ath9k PCI/PCIe bus support"
bool "Atheros ath9k PCI/PCIe bus support"
depends on ATH9K && PCI
depends on ATH9K && PCI
default PCI
---help---
---help---
This option enables the PCI bus support in ath9k.
This option enables the PCI bus support in ath9k.
...
...
drivers/net/wireless/ath/ath9k/ar9002_calib.c
View file @
11ad2f52
...
@@ -829,7 +829,7 @@ static bool ar9002_hw_init_cal(struct ath_hw *ah, struct ath9k_channel *chan)
...
@@ -829,7 +829,7 @@ static bool ar9002_hw_init_cal(struct ath_hw *ah, struct ath9k_channel *chan)
if
(
AR_SREV_9271
(
ah
))
{
if
(
AR_SREV_9271
(
ah
))
{
if
(
!
ar9285_hw_cl_cal
(
ah
,
chan
))
if
(
!
ar9285_hw_cl_cal
(
ah
,
chan
))
return
false
;
return
false
;
}
else
if
(
AR_SREV_9285_12_OR_LATER
(
ah
))
{
}
else
if
(
AR_SREV_9285
(
ah
)
&&
AR_SREV_9285
_12_OR_LATER
(
ah
))
{
if
(
!
ar9285_hw_clc
(
ah
,
chan
))
if
(
!
ar9285_hw_clc
(
ah
,
chan
))
return
false
;
return
false
;
}
else
{
}
else
{
...
...
drivers/net/wireless/ath/ath9k/ar9003_phy.c
View file @
11ad2f52
...
@@ -1381,3 +1381,25 @@ void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah)
...
@@ -1381,3 +1381,25 @@ void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah)
"==== BB update: done ====
\n\n
"
);
"==== BB update: done ====
\n\n
"
);
}
}
EXPORT_SYMBOL
(
ar9003_hw_bb_watchdog_dbg_info
);
EXPORT_SYMBOL
(
ar9003_hw_bb_watchdog_dbg_info
);
void
ar9003_hw_disable_phy_restart
(
struct
ath_hw
*
ah
)
{
u32
val
;
/* While receiving unsupported rate frame rx state machine
* gets into a state 0xb and if phy_restart happens in that
* state, BB would go hang. If RXSM is in 0xb state after
* first bb panic, ensure to disable the phy_restart.
*/
if
(
!
((
MS
(
ah
->
bb_watchdog_last_status
,
AR_PHY_WATCHDOG_RX_OFDM_SM
)
==
0xb
)
||
ah
->
bb_hang_rx_ofdm
))
return
;
ah
->
bb_hang_rx_ofdm
=
true
;
val
=
REG_READ
(
ah
,
AR_PHY_RESTART
);
val
&=
~
AR_PHY_RESTART_ENA
;
REG_WRITE
(
ah
,
AR_PHY_RESTART
,
val
);
}
EXPORT_SYMBOL
(
ar9003_hw_disable_phy_restart
);
drivers/net/wireless/ath/ath9k/hw.c
View file @
11ad2f52
...
@@ -1555,9 +1555,12 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
...
@@ -1555,9 +1555,12 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
if
(
ah
->
btcoex_hw
.
enabled
)
if
(
ah
->
btcoex_hw
.
enabled
)
ath9k_hw_btcoex_enable
(
ah
);
ath9k_hw_btcoex_enable
(
ah
);
if
(
AR_SREV_9300_20_OR_LATER
(
ah
))
if
(
AR_SREV_9300_20_OR_LATER
(
ah
))
{
ar9003_hw_bb_watchdog_config
(
ah
);
ar9003_hw_bb_watchdog_config
(
ah
);
ar9003_hw_disable_phy_restart
(
ah
);
}
ath9k_hw_apply_gpio_override
(
ah
);
ath9k_hw_apply_gpio_override
(
ah
);
return
0
;
return
0
;
...
...
drivers/net/wireless/ath/ath9k/hw.h
View file @
11ad2f52
...
@@ -842,6 +842,7 @@ struct ath_hw {
...
@@ -842,6 +842,7 @@ struct ath_hw {
u32
bb_watchdog_last_status
;
u32
bb_watchdog_last_status
;
u32
bb_watchdog_timeout_ms
;
/* in ms, 0 to disable */
u32
bb_watchdog_timeout_ms
;
/* in ms, 0 to disable */
u8
bb_hang_rx_ofdm
;
/* true if bb hang due to rx_ofdm */
unsigned
int
paprd_target_power
;
unsigned
int
paprd_target_power
;
unsigned
int
paprd_training_power
;
unsigned
int
paprd_training_power
;
...
@@ -990,6 +991,7 @@ void ar9002_hw_enable_wep_aggregation(struct ath_hw *ah);
...
@@ -990,6 +991,7 @@ void ar9002_hw_enable_wep_aggregation(struct ath_hw *ah);
void
ar9003_hw_bb_watchdog_config
(
struct
ath_hw
*
ah
);
void
ar9003_hw_bb_watchdog_config
(
struct
ath_hw
*
ah
);
void
ar9003_hw_bb_watchdog_read
(
struct
ath_hw
*
ah
);
void
ar9003_hw_bb_watchdog_read
(
struct
ath_hw
*
ah
);
void
ar9003_hw_bb_watchdog_dbg_info
(
struct
ath_hw
*
ah
);
void
ar9003_hw_bb_watchdog_dbg_info
(
struct
ath_hw
*
ah
);
void
ar9003_hw_disable_phy_restart
(
struct
ath_hw
*
ah
);
void
ar9003_paprd_enable
(
struct
ath_hw
*
ah
,
bool
val
);
void
ar9003_paprd_enable
(
struct
ath_hw
*
ah
,
bool
val
);
void
ar9003_paprd_populate_single_table
(
struct
ath_hw
*
ah
,
void
ar9003_paprd_populate_single_table
(
struct
ath_hw
*
ah
,
struct
ath9k_hw_cal_data
*
caldata
,
struct
ath9k_hw_cal_data
*
caldata
,
...
...
drivers/net/wireless/ath/ath9k/main.c
View file @
11ad2f52
...
@@ -670,7 +670,8 @@ void ath9k_tasklet(unsigned long data)
...
@@ -670,7 +670,8 @@ void ath9k_tasklet(unsigned long data)
u32
status
=
sc
->
intrstatus
;
u32
status
=
sc
->
intrstatus
;
u32
rxmask
;
u32
rxmask
;
if
(
status
&
ATH9K_INT_FATAL
)
{
if
((
status
&
ATH9K_INT_FATAL
)
||
(
status
&
ATH9K_INT_BB_WATCHDOG
))
{
ath_reset
(
sc
,
true
);
ath_reset
(
sc
,
true
);
return
;
return
;
}
}
...
@@ -737,6 +738,7 @@ irqreturn_t ath_isr(int irq, void *dev)
...
@@ -737,6 +738,7 @@ irqreturn_t ath_isr(int irq, void *dev)
{
{
#define SCHED_INTR ( \
#define SCHED_INTR ( \
ATH9K_INT_FATAL | \
ATH9K_INT_FATAL | \
ATH9K_INT_BB_WATCHDOG | \
ATH9K_INT_RXORN | \
ATH9K_INT_RXORN | \
ATH9K_INT_RXEOL | \
ATH9K_INT_RXEOL | \
ATH9K_INT_RX | \
ATH9K_INT_RX | \
...
...
drivers/net/wireless/ath/ath9k/rc.c
View file @
11ad2f52
...
@@ -689,7 +689,8 @@ static void ath_rc_rate_set_series(const struct ath_rate_table *rate_table,
...
@@ -689,7 +689,8 @@ static void ath_rc_rate_set_series(const struct ath_rate_table *rate_table,
if
(
WLAN_RC_PHY_HT
(
rate_table
->
info
[
rix
].
phy
))
{
if
(
WLAN_RC_PHY_HT
(
rate_table
->
info
[
rix
].
phy
))
{
rate
->
flags
|=
IEEE80211_TX_RC_MCS
;
rate
->
flags
|=
IEEE80211_TX_RC_MCS
;
if
(
WLAN_RC_PHY_40
(
rate_table
->
info
[
rix
].
phy
))
if
(
WLAN_RC_PHY_40
(
rate_table
->
info
[
rix
].
phy
)
&&
conf_is_ht40
(
&
txrc
->
hw
->
conf
))
rate
->
flags
|=
IEEE80211_TX_RC_40_MHZ_WIDTH
;
rate
->
flags
|=
IEEE80211_TX_RC_40_MHZ_WIDTH
;
if
(
WLAN_RC_PHY_SGI
(
rate_table
->
info
[
rix
].
phy
))
if
(
WLAN_RC_PHY_SGI
(
rate_table
->
info
[
rix
].
phy
))
rate
->
flags
|=
IEEE80211_TX_RC_SHORT_GI
;
rate
->
flags
|=
IEEE80211_TX_RC_SHORT_GI
;
...
...
drivers/net/wireless/b43/phy_n.c
View file @
11ad2f52
...
@@ -3093,7 +3093,7 @@ static int b43_nphy_cal_tx_iq_lo(struct b43_wldev *dev,
...
@@ -3093,7 +3093,7 @@ static int b43_nphy_cal_tx_iq_lo(struct b43_wldev *dev,
int
freq
;
int
freq
;
bool
avoid
=
false
;
bool
avoid
=
false
;
u8
length
;
u8
length
;
u16
tmp
,
core
,
type
,
count
,
max
,
numb
,
last
,
cmd
;
u16
tmp
,
core
,
type
,
count
,
max
,
numb
,
last
=
0
,
cmd
;
const
u16
*
table
;
const
u16
*
table
;
bool
phy6or5x
;
bool
phy6or5x
;
...
...
drivers/net/wireless/iwlegacy/iwl-4965-lib.c
View file @
11ad2f52
...
@@ -628,11 +628,11 @@ void iwl4965_rx_reply_rx(struct iwl_priv *priv,
...
@@ -628,11 +628,11 @@ void iwl4965_rx_reply_rx(struct iwl_priv *priv,
/* rx_status carries information about the packet to mac80211 */
/* rx_status carries information about the packet to mac80211 */
rx_status
.
mactime
=
le64_to_cpu
(
phy_res
->
timestamp
);
rx_status
.
mactime
=
le64_to_cpu
(
phy_res
->
timestamp
);
rx_status
.
band
=
(
phy_res
->
phy_flags
&
RX_RES_PHY_FLAGS_BAND_24_MSK
)
?
IEEE80211_BAND_2GHZ
:
IEEE80211_BAND_5GHZ
;
rx_status
.
freq
=
rx_status
.
freq
=
ieee80211_channel_to_frequency
(
le16_to_cpu
(
phy_res
->
channel
),
ieee80211_channel_to_frequency
(
le16_to_cpu
(
phy_res
->
channel
),
rx_status
.
band
);
rx_status
.
band
);
rx_status
.
band
=
(
phy_res
->
phy_flags
&
RX_RES_PHY_FLAGS_BAND_24_MSK
)
?
IEEE80211_BAND_2GHZ
:
IEEE80211_BAND_5GHZ
;
rx_status
.
rate_idx
=
rx_status
.
rate_idx
=
iwl4965_hwrate_to_mac80211_idx
(
rate_n_flags
,
rx_status
.
band
);
iwl4965_hwrate_to_mac80211_idx
(
rate_n_flags
,
rx_status
.
band
);
rx_status
.
flag
=
0
;
rx_status
.
flag
=
0
;
...
...
drivers/net/wireless/mwifiex/sdio.h
View file @
11ad2f52
...
@@ -167,8 +167,8 @@
...
@@ -167,8 +167,8 @@
/* Rx unit register */
/* Rx unit register */
#define CARD_RX_UNIT_REG 0x63
#define CARD_RX_UNIT_REG 0x63
/* Event header
Len
*/
/* Event header
len w/o 4 bytes of interface header
*/
#define MWIFIEX_EVENT_HEADER_LEN
8
#define MWIFIEX_EVENT_HEADER_LEN
4
/* Max retry number of CMD53 write */
/* Max retry number of CMD53 write */
#define MAX_WRITE_IOMEM_RETRY 2
#define MAX_WRITE_IOMEM_RETRY 2
...
...
drivers/net/wireless/rt2x00/Kconfig
View file @
11ad2f52
...
@@ -166,7 +166,6 @@ config RT2800USB_RT35XX
...
@@ -166,7 +166,6 @@ config RT2800USB_RT35XX
config RT2800USB_RT53XX
config RT2800USB_RT53XX
bool "rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)"
bool "rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)"
depends on EXPERIMENTAL
depends on EXPERIMENTAL
default y
---help---
---help---
This adds support for rt53xx wireless chipset family to the
This adds support for rt53xx wireless chipset family to the
rt2800pci driver.
rt2800pci driver.
...
...
drivers/net/wireless/rtlwifi/pci.c
View file @
11ad2f52
...
@@ -669,11 +669,6 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
...
@@ -669,11 +669,6 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
&
rx_status
,
&
rx_status
,
(
u8
*
)
pdesc
,
skb
);
(
u8
*
)
pdesc
,
skb
);
pci_unmap_single
(
rtlpci
->
pdev
,
*
((
dma_addr_t
*
)
skb
->
cb
),
rtlpci
->
rxbuffersize
,
PCI_DMA_FROMDEVICE
);
skb_put
(
skb
,
rtlpriv
->
cfg
->
ops
->
get_desc
((
u8
*
)
pdesc
,
skb_put
(
skb
,
rtlpriv
->
cfg
->
ops
->
get_desc
((
u8
*
)
pdesc
,
false
,
false
,
HW_DESC_RXPKT_LEN
));
HW_DESC_RXPKT_LEN
));
...
@@ -690,6 +685,21 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
...
@@ -690,6 +685,21 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
hdr
=
rtl_get_hdr
(
skb
);
hdr
=
rtl_get_hdr
(
skb
);
fc
=
rtl_get_fc
(
skb
);
fc
=
rtl_get_fc
(
skb
);
/* try for new buffer - if allocation fails, drop
* frame and reuse old buffer
*/
new_skb
=
dev_alloc_skb
(
rtlpci
->
rxbuffersize
);
if
(
unlikely
(
!
new_skb
))
{
RT_TRACE
(
rtlpriv
,
(
COMP_INTR
|
COMP_RECV
),
DBG_DMESG
,
(
"can't alloc skb for rx
\n
"
));
goto
done
;
}
pci_unmap_single
(
rtlpci
->
pdev
,
*
((
dma_addr_t
*
)
skb
->
cb
),
rtlpci
->
rxbuffersize
,
PCI_DMA_FROMDEVICE
);
if
(
!
stats
.
crc
||
!
stats
.
hwerror
)
{
if
(
!
stats
.
crc
||
!
stats
.
hwerror
)
{
memcpy
(
IEEE80211_SKB_RXCB
(
skb
),
&
rx_status
,
memcpy
(
IEEE80211_SKB_RXCB
(
skb
),
&
rx_status
,
sizeof
(
rx_status
));
sizeof
(
rx_status
));
...
@@ -758,15 +768,7 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
...
@@ -758,15 +768,7 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
rtl_lps_leave
(
hw
);
rtl_lps_leave
(
hw
);
}
}
new_skb
=
dev_alloc_skb
(
rtlpci
->
rxbuffersize
);
if
(
unlikely
(
!
new_skb
))
{
RT_TRACE
(
rtlpriv
,
(
COMP_INTR
|
COMP_RECV
),
DBG_DMESG
,
(
"can't alloc skb for rx
\n
"
));
goto
done
;
}
skb
=
new_skb
;
skb
=
new_skb
;
/*skb->dev = dev; */
rtlpci
->
rx_ring
[
rx_queue_idx
].
rx_buf
[
rtlpci
->
rtlpci
->
rx_ring
[
rx_queue_idx
].
rx_buf
[
rtlpci
->
rx_ring
rx_ring
...
@@ -1113,6 +1115,13 @@ static int _rtl_pci_init_rx_ring(struct ieee80211_hw *hw)
...
@@ -1113,6 +1115,13 @@ static int _rtl_pci_init_rx_ring(struct ieee80211_hw *hw)
rtlpci
->
rx_ring
[
rx_queue_idx
].
idx
=
0
;
rtlpci
->
rx_ring
[
rx_queue_idx
].
idx
=
0
;
/* If amsdu_8k is disabled, set buffersize to 4096. This
* change will reduce memory fragmentation.
*/
if
(
rtlpci
->
rxbuffersize
>
4096
&&
rtlpriv
->
rtlhal
.
disable_amsdu_8k
)
rtlpci
->
rxbuffersize
=
4096
;
for
(
i
=
0
;
i
<
rtlpci
->
rxringcount
;
i
++
)
{
for
(
i
=
0
;
i
<
rtlpci
->
rxringcount
;
i
++
)
{
struct
sk_buff
*
skb
=
struct
sk_buff
*
skb
=
dev_alloc_skb
(
rtlpci
->
rxbuffersize
);
dev_alloc_skb
(
rtlpci
->
rxbuffersize
);
...
...
net/mac80211/mlme.c
View file @
11ad2f52
...
@@ -232,6 +232,9 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
...
@@ -232,6 +232,9 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
WARN_ON
(
!
ieee80211_set_channel_type
(
local
,
sdata
,
channel_type
));
WARN_ON
(
!
ieee80211_set_channel_type
(
local
,
sdata
,
channel_type
));
}
}
ieee80211_stop_queues_by_reason
(
&
sdata
->
local
->
hw
,
IEEE80211_QUEUE_STOP_REASON_CSA
);
/* channel_type change automatically detected */
/* channel_type change automatically detected */
ieee80211_hw_config
(
local
,
0
);
ieee80211_hw_config
(
local
,
0
);
...
@@ -245,6 +248,9 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
...
@@ -245,6 +248,9 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
rcu_read_unlock
();
rcu_read_unlock
();
}
}
ieee80211_wake_queues_by_reason
(
&
sdata
->
local
->
hw
,
IEEE80211_QUEUE_STOP_REASON_CSA
);
ht_opmode
=
le16_to_cpu
(
hti
->
operation_mode
);
ht_opmode
=
le16_to_cpu
(
hti
->
operation_mode
);
/* if bss configuration changed store the new one */
/* if bss configuration changed store the new one */
...
@@ -1089,6 +1095,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
...
@@ -1089,6 +1095,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
local
->
hw
.
conf
.
flags
&=
~
IEEE80211_CONF_PS
;
local
->
hw
.
conf
.
flags
&=
~
IEEE80211_CONF_PS
;
config_changed
|=
IEEE80211_CONF_CHANGE_PS
;
config_changed
|=
IEEE80211_CONF_CHANGE_PS
;
}
}
local
->
ps_sdata
=
NULL
;
ieee80211_hw_config
(
local
,
config_changed
);
ieee80211_hw_config
(
local
,
config_changed
);
...
...
net/mac80211/scan.c
View file @
11ad2f52
...
@@ -15,7 +15,6 @@
...
@@ -15,7 +15,6 @@
#include <linux/if_arp.h>
#include <linux/if_arp.h>
#include <linux/rtnetlink.h>
#include <linux/rtnetlink.h>
#include <linux/pm_qos_params.h>
#include <linux/pm_qos_params.h>
#include <linux/slab.h>
#include <net/sch_generic.h>
#include <net/sch_generic.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <net/mac80211.h>
#include <net/mac80211.h>
...
...
net/wireless/nl80211.c
View file @
11ad2f52
...
@@ -3406,12 +3406,12 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
...
@@ -3406,12 +3406,12 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
i
=
0
;
i
=
0
;
if
(
info
->
attrs
[
NL80211_ATTR_SCAN_SSIDS
])
{
if
(
info
->
attrs
[
NL80211_ATTR_SCAN_SSIDS
])
{
nla_for_each_nested
(
attr
,
info
->
attrs
[
NL80211_ATTR_SCAN_SSIDS
],
tmp
)
{
nla_for_each_nested
(
attr
,
info
->
attrs
[
NL80211_ATTR_SCAN_SSIDS
],
tmp
)
{
request
->
ssids
[
i
].
ssid_len
=
nla_len
(
attr
);
if
(
request
->
ssids
[
i
].
ssid_len
>
IEEE80211_MAX_SSID_LEN
)
{
if
(
request
->
ssids
[
i
].
ssid_len
>
IEEE80211_MAX_SSID_LEN
)
{
err
=
-
EINVAL
;
err
=
-
EINVAL
;
goto
out_free
;
goto
out_free
;
}
}
memcpy
(
request
->
ssids
[
i
].
ssid
,
nla_data
(
attr
),
nla_len
(
attr
));
memcpy
(
request
->
ssids
[
i
].
ssid
,
nla_data
(
attr
),
nla_len
(
attr
));
request
->
ssids
[
i
].
ssid_len
=
nla_len
(
attr
);
i
++
;
i
++
;
}
}
}
}
...
@@ -3572,6 +3572,7 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
...
@@ -3572,6 +3572,7 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
if
(
info
->
attrs
[
NL80211_ATTR_SCAN_SSIDS
])
{
if
(
info
->
attrs
[
NL80211_ATTR_SCAN_SSIDS
])
{
nla_for_each_nested
(
attr
,
info
->
attrs
[
NL80211_ATTR_SCAN_SSIDS
],
nla_for_each_nested
(
attr
,
info
->
attrs
[
NL80211_ATTR_SCAN_SSIDS
],
tmp
)
{
tmp
)
{
request
->
ssids
[
i
].
ssid_len
=
nla_len
(
attr
);
if
(
request
->
ssids
[
i
].
ssid_len
>
if
(
request
->
ssids
[
i
].
ssid_len
>
IEEE80211_MAX_SSID_LEN
)
{
IEEE80211_MAX_SSID_LEN
)
{
err
=
-
EINVAL
;
err
=
-
EINVAL
;
...
@@ -3579,7 +3580,6 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
...
@@ -3579,7 +3580,6 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
}
}
memcpy
(
request
->
ssids
[
i
].
ssid
,
nla_data
(
attr
),
memcpy
(
request
->
ssids
[
i
].
ssid
,
nla_data
(
attr
),
nla_len
(
attr
));
nla_len
(
attr
));
request
->
ssids
[
i
].
ssid_len
=
nla_len
(
attr
);
i
++
;
i
++
;
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment