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
nexedi
linux
Commits
3f97fae9
Commit
3f97fae9
authored
Jul 08, 2011
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-davem' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
parents
06b8fc5d
8a98d935
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
92 additions
and
42 deletions
+92
-42
drivers/net/wireless/ath/ath5k/pci.c
drivers/net/wireless/ath/ath5k/pci.c
+5
-2
drivers/net/wireless/ath/ath5k/sysfs.c
drivers/net/wireless/ath/ath5k/sysfs.c
+6
-3
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c
+2
-1
drivers/net/wireless/ath/carl9170/usb.c
drivers/net/wireless/ath/carl9170/usb.c
+2
-0
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
+1
-0
drivers/ssb/driver_pcicore.c
drivers/ssb/driver_pcicore.c
+9
-9
net/bluetooth/hci_conn.c
net/bluetooth/hci_conn.c
+3
-0
net/bluetooth/hidp/core.c
net/bluetooth/hidp/core.c
+11
-7
net/bluetooth/hidp/hidp.h
net/bluetooth/hidp/hidp.h
+1
-0
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_core.c
+3
-2
net/mac80211/scan.c
net/mac80211/scan.c
+2
-1
net/mac80211/wpa.c
net/mac80211/wpa.c
+13
-3
net/wireless/core.c
net/wireless/core.c
+9
-3
net/wireless/core.h
net/wireless/core.h
+2
-0
net/wireless/nl80211.c
net/wireless/nl80211.c
+18
-6
net/wireless/scan.c
net/wireless/scan.c
+5
-5
No files found.
drivers/net/wireless/ath/ath5k/pci.c
View file @
3f97fae9
...
...
@@ -297,7 +297,9 @@ ath5k_pci_remove(struct pci_dev *pdev)
#ifdef CONFIG_PM_SLEEP
static
int
ath5k_pci_suspend
(
struct
device
*
dev
)
{
struct
ath5k_softc
*
sc
=
pci_get_drvdata
(
to_pci_dev
(
dev
));
struct
pci_dev
*
pdev
=
to_pci_dev
(
dev
);
struct
ieee80211_hw
*
hw
=
pci_get_drvdata
(
pdev
);
struct
ath5k_softc
*
sc
=
hw
->
priv
;
ath5k_led_off
(
sc
);
return
0
;
...
...
@@ -306,7 +308,8 @@ static int ath5k_pci_suspend(struct device *dev)
static
int
ath5k_pci_resume
(
struct
device
*
dev
)
{
struct
pci_dev
*
pdev
=
to_pci_dev
(
dev
);
struct
ath5k_softc
*
sc
=
pci_get_drvdata
(
pdev
);
struct
ieee80211_hw
*
hw
=
pci_get_drvdata
(
pdev
);
struct
ath5k_softc
*
sc
=
hw
->
priv
;
/*
* Suspend/Resume resets the PCI configuration space, so we have to
...
...
drivers/net/wireless/ath/ath5k/sysfs.c
View file @
3f97fae9
...
...
@@ -10,7 +10,8 @@ static ssize_t ath5k_attr_show_##name(struct device *dev, \
struct device_attribute *attr, \
char *buf) \
{ \
struct ath5k_softc *sc = dev_get_drvdata(dev); \
struct ieee80211_hw *hw = dev_get_drvdata(dev); \
struct ath5k_softc *sc = hw->priv; \
return snprintf(buf, PAGE_SIZE, "%d\n", get); \
} \
\
...
...
@@ -18,7 +19,8 @@ static ssize_t ath5k_attr_store_##name(struct device *dev, \
struct device_attribute *attr, \
const char *buf, size_t count) \
{ \
struct ath5k_softc *sc = dev_get_drvdata(dev); \
struct ieee80211_hw *hw = dev_get_drvdata(dev); \
struct ath5k_softc *sc = hw->priv; \
int val; \
\
val = (int)simple_strtoul(buf, NULL, 10); \
...
...
@@ -33,7 +35,8 @@ static ssize_t ath5k_attr_show_##name(struct device *dev, \
struct device_attribute *attr, \
char *buf) \
{ \
struct ath5k_softc *sc = dev_get_drvdata(dev); \
struct ieee80211_hw *hw = dev_get_drvdata(dev); \
struct ath5k_softc *sc = hw->priv; \
return snprintf(buf, PAGE_SIZE, "%d\n", get); \
} \
static DEVICE_ATTR(name, S_IRUGO, ath5k_attr_show_##name, NULL)
...
...
drivers/net/wireless/ath/ath9k/xmit.c
View file @
3f97fae9
...
...
@@ -671,7 +671,8 @@ static int ath_compute_num_delims(struct ath_softc *sc, struct ath_atx_tid *tid,
* TODO - this could be improved to be dependent on the rate.
* The hardware can keep up at lower rates, but not higher rates
*/
if
(
fi
->
keyix
!=
ATH9K_TXKEYIX_INVALID
)
if
((
fi
->
keyix
!=
ATH9K_TXKEYIX_INVALID
)
&&
!
(
sc
->
sc_ah
->
caps
.
hw_caps
&
ATH9K_HW_CAP_EDMA
))
ndelim
+=
ATH_AGGR_ENCRYPTDELIM
;
/*
...
...
drivers/net/wireless/ath/carl9170/usb.c
View file @
3f97fae9
...
...
@@ -112,6 +112,8 @@ static struct usb_device_id carl9170_usb_ids[] = {
{
USB_DEVICE
(
0x04bb
,
0x093f
)
},
/* NEC WL300NU-G */
{
USB_DEVICE
(
0x0409
,
0x0249
)
},
/* NEC WL300NU-AG */
{
USB_DEVICE
(
0x0409
,
0x02b4
)
},
/* AVM FRITZ!WLAN USB Stick N */
{
USB_DEVICE
(
0x057c
,
0x8401
)
},
/* AVM FRITZ!WLAN USB Stick N 2.4 */
...
...
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
View file @
3f97fae9
...
...
@@ -298,6 +298,7 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
{
RTL_USB_DEVICE
(
0x06f8
,
0xe033
,
rtl92cu_hal_cfg
)},
/*Hercules - Edimax*/
{
RTL_USB_DEVICE
(
0x07b8
,
0x8188
,
rtl92cu_hal_cfg
)},
/*Abocom - Abocom*/
{
RTL_USB_DEVICE
(
0x07b8
,
0x8189
,
rtl92cu_hal_cfg
)},
/*Funai - Abocom*/
{
RTL_USB_DEVICE
(
0x0846
,
0x9041
,
rtl92cu_hal_cfg
)},
/*NetGear WNA1000M*/
{
RTL_USB_DEVICE
(
0x0Df6
,
0x0052
,
rtl92cu_hal_cfg
)},
/*Sitecom - Edimax*/
{
RTL_USB_DEVICE
(
0x0eb0
,
0x9071
,
rtl92cu_hal_cfg
)},
/*NO Brand - Etop*/
/* HP - Lite-On ,8188CUS Slim Combo */
...
...
drivers/ssb/driver_pcicore.c
View file @
3f97fae9
...
...
@@ -516,8 +516,17 @@ static void ssb_pcicore_pcie_setup_workarounds(struct ssb_pcicore *pc)
static
void
ssb_pcicore_init_clientmode
(
struct
ssb_pcicore
*
pc
)
{
ssb_pcicore_fix_sprom_core_index
(
pc
);
/* Disable PCI interrupts. */
ssb_write32
(
pc
->
dev
,
SSB_INTVEC
,
0
);
/* Additional PCIe always once-executed workarounds */
if
(
pc
->
dev
->
id
.
coreid
==
SSB_DEV_PCIE
)
{
ssb_pcicore_serdes_workaround
(
pc
);
/* TODO: ASPM */
/* TODO: Clock Request Update */
}
}
void
ssb_pcicore_init
(
struct
ssb_pcicore
*
pc
)
...
...
@@ -529,8 +538,6 @@ void ssb_pcicore_init(struct ssb_pcicore *pc)
if
(
!
ssb_device_is_enabled
(
dev
))
ssb_device_enable
(
dev
,
0
);
ssb_pcicore_fix_sprom_core_index
(
pc
);
#ifdef CONFIG_SSB_PCICORE_HOSTMODE
pc
->
hostmode
=
pcicore_is_in_hostmode
(
pc
);
if
(
pc
->
hostmode
)
...
...
@@ -538,13 +545,6 @@ void ssb_pcicore_init(struct ssb_pcicore *pc)
#endif
/* CONFIG_SSB_PCICORE_HOSTMODE */
if
(
!
pc
->
hostmode
)
ssb_pcicore_init_clientmode
(
pc
);
/* Additional PCIe always once-executed workarounds */
if
(
dev
->
id
.
coreid
==
SSB_DEV_PCIE
)
{
ssb_pcicore_serdes_workaround
(
pc
);
/* TODO: ASPM */
/* TODO: Clock Request Update */
}
}
static
u32
ssb_pcie_read
(
struct
ssb_pcicore
*
pc
,
u32
address
)
...
...
net/bluetooth/hci_conn.c
View file @
3f97fae9
...
...
@@ -393,6 +393,9 @@ int hci_conn_del(struct hci_conn *conn)
hci_dev_put
(
hdev
);
if
(
conn
->
handle
==
0
)
kfree
(
conn
);
return
0
;
}
...
...
net/bluetooth/hidp/core.c
View file @
3f97fae9
...
...
@@ -464,7 +464,8 @@ static void hidp_idle_timeout(unsigned long arg)
{
struct
hidp_session
*
session
=
(
struct
hidp_session
*
)
arg
;
kthread_stop
(
session
->
task
);
atomic_inc
(
&
session
->
terminate
);
wake_up_process
(
session
->
task
);
}
static
void
hidp_set_timer
(
struct
hidp_session
*
session
)
...
...
@@ -535,7 +536,8 @@ static void hidp_process_hid_control(struct hidp_session *session,
skb_queue_purge
(
&
session
->
ctrl_transmit
);
skb_queue_purge
(
&
session
->
intr_transmit
);
kthread_stop
(
session
->
task
);
atomic_inc
(
&
session
->
terminate
);
wake_up_process
(
current
);
}
}
...
...
@@ -706,9 +708,8 @@ static int hidp_session(void *arg)
add_wait_queue
(
sk_sleep
(
intr_sk
),
&
intr_wait
);
session
->
waiting_for_startup
=
0
;
wake_up_interruptible
(
&
session
->
startup_queue
);
while
(
!
kthread_should_stop
())
{
set_current_state
(
TASK_INTERRUPTIBLE
);
set_current_state
(
TASK_INTERRUPTIBLE
);
while
(
!
atomic_read
(
&
session
->
terminate
))
{
if
(
ctrl_sk
->
sk_state
!=
BT_CONNECTED
||
intr_sk
->
sk_state
!=
BT_CONNECTED
)
break
;
...
...
@@ -726,6 +727,7 @@ static int hidp_session(void *arg)
hidp_process_transmit
(
session
);
schedule
();
set_current_state
(
TASK_INTERRUPTIBLE
);
}
set_current_state
(
TASK_RUNNING
);
remove_wait_queue
(
sk_sleep
(
intr_sk
),
&
intr_wait
);
...
...
@@ -1060,7 +1062,8 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock,
err_add_device:
hid_destroy_device
(
session
->
hid
);
session
->
hid
=
NULL
;
kthread_stop
(
session
->
task
);
atomic_inc
(
&
session
->
terminate
);
wake_up_process
(
session
->
task
);
unlink:
hidp_del_timer
(
session
);
...
...
@@ -1111,7 +1114,8 @@ int hidp_del_connection(struct hidp_conndel_req *req)
skb_queue_purge
(
&
session
->
ctrl_transmit
);
skb_queue_purge
(
&
session
->
intr_transmit
);
kthread_stop
(
session
->
task
);
atomic_inc
(
&
session
->
terminate
);
wake_up_process
(
session
->
task
);
}
}
else
err
=
-
ENOENT
;
...
...
net/bluetooth/hidp/hidp.h
View file @
3f97fae9
...
...
@@ -142,6 +142,7 @@ struct hidp_session {
uint
ctrl_mtu
;
uint
intr_mtu
;
atomic_t
terminate
;
struct
task_struct
*
task
;
unsigned
char
keys
[
8
];
...
...
net/bluetooth/l2cap_core.c
View file @
3f97fae9
...
...
@@ -2323,7 +2323,8 @@ static inline int l2cap_config_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr
sk
=
chan
->
sk
;
if
(
sk
->
sk_state
!=
BT_CONFIG
)
{
if
((
bt_sk
(
sk
)
->
defer_setup
&&
sk
->
sk_state
!=
BT_CONNECT2
)
||
(
!
bt_sk
(
sk
)
->
defer_setup
&&
sk
->
sk_state
!=
BT_CONFIG
))
{
struct
l2cap_cmd_rej
rej
;
rej
.
reason
=
cpu_to_le16
(
0x0002
);
...
...
@@ -2334,7 +2335,7 @@ static inline int l2cap_config_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr
/* Reject if config buffer is too small. */
len
=
cmd_len
-
sizeof
(
*
req
);
if
(
chan
->
conf_len
+
len
>
sizeof
(
chan
->
conf_req
))
{
if
(
len
<
0
||
chan
->
conf_len
+
len
>
sizeof
(
chan
->
conf_req
))
{
l2cap_send_cmd
(
conn
,
cmd
->
ident
,
L2CAP_CONF_RSP
,
l2cap_build_conf_rsp
(
chan
,
rsp
,
L2CAP_CONF_REJECT
,
flags
),
rsp
);
...
...
net/mac80211/scan.c
View file @
3f97fae9
...
...
@@ -877,7 +877,8 @@ int ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata,
for
(
i
=
0
;
i
<
IEEE80211_NUM_BANDS
;
i
++
)
{
local
->
sched_scan_ies
.
ie
[
i
]
=
kzalloc
(
2
+
IEEE80211_MAX_SSID_LEN
+
local
->
scan_ies_len
,
local
->
scan_ies_len
+
req
->
ie_len
,
GFP_KERNEL
);
if
(
!
local
->
sched_scan_ies
.
ie
[
i
])
{
ret
=
-
ENOMEM
;
...
...
net/mac80211/wpa.c
View file @
3f97fae9
...
...
@@ -86,6 +86,11 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_rx_data *rx)
struct
sk_buff
*
skb
=
rx
->
skb
;
struct
ieee80211_rx_status
*
status
=
IEEE80211_SKB_RXCB
(
skb
);
struct
ieee80211_hdr
*
hdr
=
(
struct
ieee80211_hdr
*
)
skb
->
data
;
int
queue
=
rx
->
queue
;
/* otherwise, TKIP is vulnerable to TID 0 vs. non-QoS replays */
if
(
rx
->
queue
==
NUM_RX_DATA_QUEUES
-
1
)
queue
=
0
;
/*
* it makes no sense to check for MIC errors on anything other
...
...
@@ -148,8 +153,8 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_rx_data *rx)
update_iv:
/* update IV in key information to be able to detect replays */
rx
->
key
->
u
.
tkip
.
rx
[
rx
->
queue
].
iv32
=
rx
->
tkip_iv32
;
rx
->
key
->
u
.
tkip
.
rx
[
rx
->
queue
].
iv16
=
rx
->
tkip_iv16
;
rx
->
key
->
u
.
tkip
.
rx
[
queue
].
iv32
=
rx
->
tkip_iv32
;
rx
->
key
->
u
.
tkip
.
rx
[
queue
].
iv16
=
rx
->
tkip_iv16
;
return
RX_CONTINUE
;
...
...
@@ -241,6 +246,11 @@ ieee80211_crypto_tkip_decrypt(struct ieee80211_rx_data *rx)
struct
ieee80211_key
*
key
=
rx
->
key
;
struct
sk_buff
*
skb
=
rx
->
skb
;
struct
ieee80211_rx_status
*
status
=
IEEE80211_SKB_RXCB
(
skb
);
int
queue
=
rx
->
queue
;
/* otherwise, TKIP is vulnerable to TID 0 vs. non-QoS replays */
if
(
rx
->
queue
==
NUM_RX_DATA_QUEUES
-
1
)
queue
=
0
;
hdrlen
=
ieee80211_hdrlen
(
hdr
->
frame_control
);
...
...
@@ -261,7 +271,7 @@ ieee80211_crypto_tkip_decrypt(struct ieee80211_rx_data *rx)
res
=
ieee80211_tkip_decrypt_data
(
rx
->
local
->
wep_rx_tfm
,
key
,
skb
->
data
+
hdrlen
,
skb
->
len
-
hdrlen
,
rx
->
sta
->
sta
.
addr
,
hdr
->
addr1
,
hwaccel
,
rx
->
queue
,
hdr
->
addr1
,
hwaccel
,
queue
,
&
rx
->
tkip_iv32
,
&
rx
->
tkip_iv16
);
if
(
res
!=
TKIP_DECRYPT_OK
)
...
...
net/wireless/core.c
View file @
3f97fae9
...
...
@@ -366,6 +366,7 @@ struct wiphy *wiphy_new(const struct cfg80211_ops *ops, int sizeof_priv)
mutex_init
(
&
rdev
->
mtx
);
mutex_init
(
&
rdev
->
devlist_mtx
);
mutex_init
(
&
rdev
->
sched_scan_mtx
);
INIT_LIST_HEAD
(
&
rdev
->
netdev_list
);
spin_lock_init
(
&
rdev
->
bss_lock
);
INIT_LIST_HEAD
(
&
rdev
->
bss_list
);
...
...
@@ -701,6 +702,7 @@ void cfg80211_dev_free(struct cfg80211_registered_device *rdev)
rfkill_destroy
(
rdev
->
rfkill
);
mutex_destroy
(
&
rdev
->
mtx
);
mutex_destroy
(
&
rdev
->
devlist_mtx
);
mutex_destroy
(
&
rdev
->
sched_scan_mtx
);
list_for_each_entry_safe
(
scan
,
tmp
,
&
rdev
->
bss_list
,
list
)
cfg80211_put_bss
(
&
scan
->
pub
);
cfg80211_rdev_free_wowlan
(
rdev
);
...
...
@@ -737,12 +739,16 @@ static void wdev_cleanup_work(struct work_struct *work)
___cfg80211_scan_done
(
rdev
,
true
);
}
cfg80211_unlock_rdev
(
rdev
);
mutex_lock
(
&
rdev
->
sched_scan_mtx
);
if
(
WARN_ON
(
rdev
->
sched_scan_req
&&
rdev
->
sched_scan_req
->
dev
==
wdev
->
netdev
))
{
__cfg80211_stop_sched_scan
(
rdev
,
false
);
}
cfg80211_unlock_rdev
(
rdev
);
mutex_unlock
(
&
rdev
->
sched_scan_mtx
);
mutex_lock
(
&
rdev
->
devlist_mtx
);
rdev
->
opencount
--
;
...
...
@@ -830,9 +836,9 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb,
break
;
case
NL80211_IFTYPE_P2P_CLIENT
:
case
NL80211_IFTYPE_STATION
:
cfg80211_lock_rdev
(
rdev
);
mutex_lock
(
&
rdev
->
sched_scan_mtx
);
__cfg80211_stop_sched_scan
(
rdev
,
false
);
cfg80211_unlock_rdev
(
rdev
);
mutex_unlock
(
&
rdev
->
sched_scan_mtx
);
wdev_lock
(
wdev
);
#ifdef CONFIG_CFG80211_WEXT
...
...
net/wireless/core.h
View file @
3f97fae9
...
...
@@ -65,6 +65,8 @@ struct cfg80211_registered_device {
struct
work_struct
scan_done_wk
;
struct
work_struct
sched_scan_results_wk
;
struct
mutex
sched_scan_mtx
;
#ifdef CONFIG_NL80211_TESTMODE
struct
genl_info
*
testmode_info
;
#endif
...
...
net/wireless/nl80211.c
View file @
3f97fae9
...
...
@@ -3461,9 +3461,6 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
if
(
!
is_valid_ie_attr
(
info
->
attrs
[
NL80211_ATTR_IE
]))
return
-
EINVAL
;
if
(
rdev
->
sched_scan_req
)
return
-
EINPROGRESS
;
if
(
!
info
->
attrs
[
NL80211_ATTR_SCHED_SCAN_INTERVAL
])
return
-
EINVAL
;
...
...
@@ -3502,12 +3499,21 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
if
(
ie_len
>
wiphy
->
max_scan_ie_len
)
return
-
EINVAL
;
mutex_lock
(
&
rdev
->
sched_scan_mtx
);
if
(
rdev
->
sched_scan_req
)
{
err
=
-
EINPROGRESS
;
goto
out
;
}
request
=
kzalloc
(
sizeof
(
*
request
)
+
sizeof
(
*
request
->
ssids
)
*
n_ssids
+
sizeof
(
*
request
->
channels
)
*
n_channels
+
ie_len
,
GFP_KERNEL
);
if
(
!
request
)
return
-
ENOMEM
;
if
(
!
request
)
{
err
=
-
ENOMEM
;
goto
out
;
}
if
(
n_ssids
)
request
->
ssids
=
(
void
*
)
&
request
->
channels
[
n_channels
];
...
...
@@ -3605,6 +3611,7 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
out_free:
kfree
(
request
);
out:
mutex_unlock
(
&
rdev
->
sched_scan_mtx
);
return
err
;
}
...
...
@@ -3612,12 +3619,17 @@ static int nl80211_stop_sched_scan(struct sk_buff *skb,
struct
genl_info
*
info
)
{
struct
cfg80211_registered_device
*
rdev
=
info
->
user_ptr
[
0
];
int
err
;
if
(
!
(
rdev
->
wiphy
.
flags
&
WIPHY_FLAG_SUPPORTS_SCHED_SCAN
)
||
!
rdev
->
ops
->
sched_scan_stop
)
return
-
EOPNOTSUPP
;
return
__cfg80211_stop_sched_scan
(
rdev
,
false
);
mutex_lock
(
&
rdev
->
sched_scan_mtx
);
err
=
__cfg80211_stop_sched_scan
(
rdev
,
false
);
mutex_unlock
(
&
rdev
->
sched_scan_mtx
);
return
err
;
}
static
int
nl80211_send_bss
(
struct
sk_buff
*
msg
,
u32
pid
,
u32
seq
,
int
flags
,
...
...
net/wireless/scan.c
View file @
3f97fae9
...
...
@@ -100,14 +100,14 @@ void __cfg80211_sched_scan_results(struct work_struct *wk)
rdev
=
container_of
(
wk
,
struct
cfg80211_registered_device
,
sched_scan_results_wk
);
cfg80211_lock_rdev
(
rdev
);
mutex_lock
(
&
rdev
->
sched_scan_mtx
);
/* we don't have sched_scan_req anymore if the scan is stopping */
if
(
rdev
->
sched_scan_req
)
nl80211_send_sched_scan_results
(
rdev
,
rdev
->
sched_scan_req
->
dev
);
cfg80211_unlock_rdev
(
rdev
);
mutex_unlock
(
&
rdev
->
sched_scan_mtx
);
}
void
cfg80211_sched_scan_results
(
struct
wiphy
*
wiphy
)
...
...
@@ -123,9 +123,9 @@ void cfg80211_sched_scan_stopped(struct wiphy *wiphy)
{
struct
cfg80211_registered_device
*
rdev
=
wiphy_to_dev
(
wiphy
);
cfg80211_lock_rdev
(
rdev
);
mutex_lock
(
&
rdev
->
sched_scan_mtx
);
__cfg80211_stop_sched_scan
(
rdev
,
true
);
cfg80211_unlock_rdev
(
rdev
);
mutex_unlock
(
&
rdev
->
sched_scan_mtx
);
}
EXPORT_SYMBOL
(
cfg80211_sched_scan_stopped
);
...
...
@@ -135,7 +135,7 @@ int __cfg80211_stop_sched_scan(struct cfg80211_registered_device *rdev,
int
err
;
struct
net_device
*
dev
;
ASSERT_RDEV_LOCK
(
rdev
);
lockdep_assert_held
(
&
rdev
->
sched_scan_mtx
);
if
(
!
rdev
->
sched_scan_req
)
return
0
;
...
...
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