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
7dd30d44
Commit
7dd30d44
authored
Mar 27, 2012
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
parents
de8856d2
643c61e1
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
58 additions
and
44 deletions
+58
-44
MAINTAINERS
MAINTAINERS
+0
-1
drivers/net/wireless/ath/ath9k/calib.c
drivers/net/wireless/ath/ath9k/calib.c
+2
-3
drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/init.c
+1
-1
drivers/net/wireless/ath/ath9k/recv.c
drivers/net/wireless/ath/ath9k/recv.c
+2
-2
drivers/net/wireless/iwlegacy/3945-mac.c
drivers/net/wireless/iwlegacy/3945-mac.c
+0
-2
drivers/net/wireless/iwlegacy/4965-mac.c
drivers/net/wireless/iwlegacy/4965-mac.c
+0
-2
drivers/net/wireless/iwlegacy/common.c
drivers/net/wireless/iwlegacy/common.c
+18
-13
drivers/net/wireless/rt2x00/rt2800usb.c
drivers/net/wireless/rt2x00/rt2800usb.c
+8
-2
drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
+1
-1
drivers/net/wireless/rtlwifi/rtl8192de/phy.c
drivers/net/wireless/rtlwifi/rtl8192de/phy.c
+1
-1
include/net/cfg80211.h
include/net/cfg80211.h
+4
-2
net/mac80211/agg-rx.c
net/mac80211/agg-rx.c
+2
-1
net/mac80211/main.c
net/mac80211/main.c
+0
-3
net/wireless/nl80211.c
net/wireless/nl80211.c
+19
-10
No files found.
MAINTAINERS
View file @
7dd30d44
...
@@ -1251,7 +1251,6 @@ ATHEROS ATH5K WIRELESS DRIVER
...
@@ -1251,7 +1251,6 @@ ATHEROS ATH5K WIRELESS DRIVER
M: Jiri Slaby <jirislaby@gmail.com>
M: Jiri Slaby <jirislaby@gmail.com>
M: Nick Kossifidis <mickflemm@gmail.com>
M: Nick Kossifidis <mickflemm@gmail.com>
M: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
M: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
M: Bob Copeland <me@bobcopeland.com>
L: linux-wireless@vger.kernel.org
L: linux-wireless@vger.kernel.org
L: ath5k-devel@lists.ath5k.org
L: ath5k-devel@lists.ath5k.org
W: http://wireless.kernel.org/en/users/Drivers/ath5k
W: http://wireless.kernel.org/en/users/Drivers/ath5k
...
...
drivers/net/wireless/ath/ath9k/calib.c
View file @
7dd30d44
...
@@ -20,7 +20,6 @@
...
@@ -20,7 +20,6 @@
/* Common calibration code */
/* Common calibration code */
#define ATH9K_NF_TOO_HIGH -60
static
int16_t
ath9k_hw_get_nf_hist_mid
(
int16_t
*
nfCalBuffer
)
static
int16_t
ath9k_hw_get_nf_hist_mid
(
int16_t
*
nfCalBuffer
)
{
{
...
@@ -346,10 +345,10 @@ static void ath9k_hw_nf_sanitize(struct ath_hw *ah, s16 *nf)
...
@@ -346,10 +345,10 @@ static void ath9k_hw_nf_sanitize(struct ath_hw *ah, s16 *nf)
"NF calibrated [%s] [chain %d] is %d
\n
"
,
"NF calibrated [%s] [chain %d] is %d
\n
"
,
(
i
>=
3
?
"ext"
:
"ctl"
),
i
%
3
,
nf
[
i
]);
(
i
>=
3
?
"ext"
:
"ctl"
),
i
%
3
,
nf
[
i
]);
if
(
nf
[
i
]
>
ATH9K_NF_TOO_HIGH
)
{
if
(
nf
[
i
]
>
limit
->
max
)
{
ath_dbg
(
common
,
CALIBRATE
,
ath_dbg
(
common
,
CALIBRATE
,
"NF[%d] (%d) > MAX (%d), correcting to MAX
\n
"
,
"NF[%d] (%d) > MAX (%d), correcting to MAX
\n
"
,
i
,
nf
[
i
],
ATH9K_NF_TOO_HIGH
);
i
,
nf
[
i
],
limit
->
max
);
nf
[
i
]
=
limit
->
max
;
nf
[
i
]
=
limit
->
max
;
}
else
if
(
nf
[
i
]
<
limit
->
min
)
{
}
else
if
(
nf
[
i
]
<
limit
->
min
)
{
ath_dbg
(
common
,
CALIBRATE
,
ath_dbg
(
common
,
CALIBRATE
,
...
...
drivers/net/wireless/ath/ath9k/init.c
View file @
7dd30d44
...
@@ -680,7 +680,7 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
...
@@ -680,7 +680,7 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
hw
->
queues
=
4
;
hw
->
queues
=
4
;
hw
->
max_rates
=
4
;
hw
->
max_rates
=
4
;
hw
->
channel_change_time
=
5000
;
hw
->
channel_change_time
=
5000
;
hw
->
max_listen_interval
=
1
0
;
hw
->
max_listen_interval
=
1
;
hw
->
max_rate_tries
=
10
;
hw
->
max_rate_tries
=
10
;
hw
->
sta_data_size
=
sizeof
(
struct
ath_node
);
hw
->
sta_data_size
=
sizeof
(
struct
ath_node
);
hw
->
vif_data_size
=
sizeof
(
struct
ath_vif
);
hw
->
vif_data_size
=
sizeof
(
struct
ath_vif
);
...
...
drivers/net/wireless/ath/ath9k/recv.c
View file @
7dd30d44
...
@@ -1913,13 +1913,13 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
...
@@ -1913,13 +1913,13 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
if
(
sc
->
rx
.
frag
)
{
if
(
sc
->
rx
.
frag
)
{
int
space
=
skb
->
len
-
skb_tailroom
(
hdr_skb
);
int
space
=
skb
->
len
-
skb_tailroom
(
hdr_skb
);
sc
->
rx
.
frag
=
NULL
;
if
(
pskb_expand_head
(
hdr_skb
,
0
,
space
,
GFP_ATOMIC
)
<
0
)
{
if
(
pskb_expand_head
(
hdr_skb
,
0
,
space
,
GFP_ATOMIC
)
<
0
)
{
dev_kfree_skb
(
skb
);
dev_kfree_skb
(
skb
);
goto
requeue_drop_frag
;
goto
requeue_drop_frag
;
}
}
sc
->
rx
.
frag
=
NULL
;
skb_copy_from_linear_data
(
skb
,
skb_put
(
hdr_skb
,
skb
->
len
),
skb_copy_from_linear_data
(
skb
,
skb_put
(
hdr_skb
,
skb
->
len
),
skb
->
len
);
skb
->
len
);
dev_kfree_skb_any
(
skb
);
dev_kfree_skb_any
(
skb
);
...
...
drivers/net/wireless/iwlegacy/3945-mac.c
View file @
7dd30d44
...
@@ -2673,8 +2673,6 @@ il3945_bg_restart(struct work_struct *data)
...
@@ -2673,8 +2673,6 @@ il3945_bg_restart(struct work_struct *data)
if
(
test_and_clear_bit
(
S_FW_ERROR
,
&
il
->
status
))
{
if
(
test_and_clear_bit
(
S_FW_ERROR
,
&
il
->
status
))
{
mutex_lock
(
&
il
->
mutex
);
mutex_lock
(
&
il
->
mutex
);
/* FIXME: vif can be dereferenced */
il
->
vif
=
NULL
;
il
->
is_open
=
0
;
il
->
is_open
=
0
;
mutex_unlock
(
&
il
->
mutex
);
mutex_unlock
(
&
il
->
mutex
);
il3945_down
(
il
);
il3945_down
(
il
);
...
...
drivers/net/wireless/iwlegacy/4965-mac.c
View file @
7dd30d44
...
@@ -5652,8 +5652,6 @@ il4965_bg_restart(struct work_struct *data)
...
@@ -5652,8 +5652,6 @@ il4965_bg_restart(struct work_struct *data)
if
(
test_and_clear_bit
(
S_FW_ERROR
,
&
il
->
status
))
{
if
(
test_and_clear_bit
(
S_FW_ERROR
,
&
il
->
status
))
{
mutex_lock
(
&
il
->
mutex
);
mutex_lock
(
&
il
->
mutex
);
/* FIXME: do we dereference vif without mutex locked ? */
il
->
vif
=
NULL
;
il
->
is_open
=
0
;
il
->
is_open
=
0
;
__il4965_down
(
il
);
__il4965_down
(
il
);
...
...
drivers/net/wireless/iwlegacy/common.c
View file @
7dd30d44
...
@@ -4508,6 +4508,7 @@ il_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
...
@@ -4508,6 +4508,7 @@ il_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
{
{
struct
il_priv
*
il
=
hw
->
priv
;
struct
il_priv
*
il
=
hw
->
priv
;
int
err
;
int
err
;
bool
reset
;
mutex_lock
(
&
il
->
mutex
);
mutex_lock
(
&
il
->
mutex
);
D_MAC80211
(
"enter: type %d, addr %pM
\n
"
,
vif
->
type
,
vif
->
addr
);
D_MAC80211
(
"enter: type %d, addr %pM
\n
"
,
vif
->
type
,
vif
->
addr
);
...
@@ -4518,7 +4519,12 @@ il_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
...
@@ -4518,7 +4519,12 @@ il_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
goto
out
;
goto
out
;
}
}
if
(
il
->
vif
)
{
/*
* We do not support multiple virtual interfaces, but on hardware reset
* we have to add the same interface again.
*/
reset
=
(
il
->
vif
==
vif
);
if
(
il
->
vif
&&
!
reset
)
{
err
=
-
EOPNOTSUPP
;
err
=
-
EOPNOTSUPP
;
goto
out
;
goto
out
;
}
}
...
@@ -4528,8 +4534,11 @@ il_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
...
@@ -4528,8 +4534,11 @@ il_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
err
=
il_set_mode
(
il
);
err
=
il_set_mode
(
il
);
if
(
err
)
{
if
(
err
)
{
il
->
vif
=
NULL
;
IL_WARN
(
"Fail to set mode %d
\n
"
,
vif
->
type
);
il
->
iw_mode
=
NL80211_IFTYPE_STATION
;
if
(
!
reset
)
{
il
->
vif
=
NULL
;
il
->
iw_mode
=
NL80211_IFTYPE_STATION
;
}
}
}
out:
out:
...
@@ -5279,9 +5288,9 @@ il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
...
@@ -5279,9 +5288,9 @@ il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
D_MAC80211
(
"BSSID %pM
\n
"
,
bss_conf
->
bssid
);
D_MAC80211
(
"BSSID %pM
\n
"
,
bss_conf
->
bssid
);
/*
/*
* If there is currently a HW scan going on in the
* If there is currently a HW scan going on in the
background,
*
background then we need to cancel it else the RXON
*
then we need to cancel it, otherwise sometimes we are not
*
below/in post_associate will fail.
*
able to authenticate (FIXME: why ?)
*/
*/
if
(
il_scan_cancel_timeout
(
il
,
100
))
{
if
(
il_scan_cancel_timeout
(
il
,
100
))
{
D_MAC80211
(
"leave - scan abort failed
\n
"
);
D_MAC80211
(
"leave - scan abort failed
\n
"
);
...
@@ -5290,14 +5299,10 @@ il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
...
@@ -5290,14 +5299,10 @@ il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
}
}
/* mac80211 only sets assoc when in STATION mode */
/* mac80211 only sets assoc when in STATION mode */
if
(
vif
->
type
==
NL80211_IFTYPE_ADHOC
||
bss_conf
->
assoc
)
{
memcpy
(
il
->
staging
.
bssid_addr
,
bss_conf
->
bssid
,
ETH_ALEN
);
memcpy
(
il
->
staging
.
bssid_addr
,
bss_conf
->
bssid
,
ETH_ALEN
);
/* currently needed in a few places */
/* FIXME: currently needed in a few places */
memcpy
(
il
->
bssid
,
bss_conf
->
bssid
,
ETH_ALEN
);
memcpy
(
il
->
bssid
,
bss_conf
->
bssid
,
ETH_ALEN
);
}
else
il
->
staging
.
filter_flags
&=
~
RXON_FILTER_ASSOC_MSK
;
}
}
/*
/*
...
...
drivers/net/wireless/rt2x00/rt2800usb.c
View file @
7dd30d44
...
@@ -163,7 +163,13 @@ static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev,
...
@@ -163,7 +163,13 @@ static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev,
/* Reschedule urb to read TX status again instantly */
/* Reschedule urb to read TX status again instantly */
return
true
;
return
true
;
}
else
if
(
rt2800usb_txstatus_pending
(
rt2x00dev
))
{
}
/* Check if there is any entry that timedout waiting on TX status */
if
(
rt2800usb_txstatus_timeout
(
rt2x00dev
))
queue_work
(
rt2x00dev
->
workqueue
,
&
rt2x00dev
->
txdone_work
);
if
(
rt2800usb_txstatus_pending
(
rt2x00dev
))
{
/* Read register after 250 us */
/* Read register after 250 us */
hrtimer_start
(
&
rt2x00dev
->
txstatus_timer
,
ktime_set
(
0
,
250000
),
hrtimer_start
(
&
rt2x00dev
->
txstatus_timer
,
ktime_set
(
0
,
250000
),
HRTIMER_MODE_REL
);
HRTIMER_MODE_REL
);
...
@@ -178,7 +184,7 @@ static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev,
...
@@ -178,7 +184,7 @@ static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev,
* here again if status reading is needed.
* here again if status reading is needed.
*/
*/
if
(
rt2800usb_txstatus_pending
(
rt2x00dev
)
&&
if
(
rt2800usb_txstatus_pending
(
rt2x00dev
)
&&
test_and_set_bit
(
TX_STATUS_READING
,
&
rt2x00dev
->
flags
))
!
test_and_set_bit
(
TX_STATUS_READING
,
&
rt2x00dev
->
flags
))
return
true
;
return
true
;
else
else
return
false
;
return
false
;
...
...
drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
View file @
7dd30d44
...
@@ -1893,7 +1893,7 @@ void rtl92c_phy_set_io(struct ieee80211_hw *hw)
...
@@ -1893,7 +1893,7 @@ void rtl92c_phy_set_io(struct ieee80211_hw *hw)
break
;
break
;
case
IO_CMD_PAUSE_DM_BY_SCAN
:
case
IO_CMD_PAUSE_DM_BY_SCAN
:
rtlphy
->
initgain_backup
.
xaagccore1
=
dm_digtable
.
cur_igvalue
;
rtlphy
->
initgain_backup
.
xaagccore1
=
dm_digtable
.
cur_igvalue
;
dm_digtable
.
cur_igvalue
=
0x
1
7
;
dm_digtable
.
cur_igvalue
=
0x
3
7
;
rtl92c_dm_write_dig
(
hw
);
rtl92c_dm_write_dig
(
hw
);
break
;
break
;
default:
default:
...
...
drivers/net/wireless/rtlwifi/rtl8192de/phy.c
View file @
7dd30d44
...
@@ -3077,7 +3077,7 @@ static void rtl92d_phy_set_io(struct ieee80211_hw *hw)
...
@@ -3077,7 +3077,7 @@ static void rtl92d_phy_set_io(struct ieee80211_hw *hw)
break
;
break
;
case
IO_CMD_PAUSE_DM_BY_SCAN
:
case
IO_CMD_PAUSE_DM_BY_SCAN
:
rtlphy
->
initgain_backup
.
xaagccore1
=
de_digtable
.
cur_igvalue
;
rtlphy
->
initgain_backup
.
xaagccore1
=
de_digtable
.
cur_igvalue
;
de_digtable
.
cur_igvalue
=
0x
1
7
;
de_digtable
.
cur_igvalue
=
0x
3
7
;
rtl92d_dm_write_dig
(
hw
);
rtl92d_dm_write_dig
(
hw
);
break
;
break
;
default:
default:
...
...
include/net/cfg80211.h
View file @
7dd30d44
...
@@ -620,8 +620,10 @@ struct sta_bss_parameters {
...
@@ -620,8 +620,10 @@ struct sta_bss_parameters {
* @llid: mesh local link id
* @llid: mesh local link id
* @plid: mesh peer link id
* @plid: mesh peer link id
* @plink_state: mesh peer link state
* @plink_state: mesh peer link state
* @signal: signal strength of last received packet in dBm
* @signal: the signal strength, type depends on the wiphy's signal_type
* @signal_avg: signal strength average in dBm
NOTE: For CFG80211_SIGNAL_TYPE_MBM, value is expressed in _dBm_.
* @signal_avg: avg signal strength, type depends on the wiphy's signal_type
NOTE: For CFG80211_SIGNAL_TYPE_MBM, value is expressed in _dBm_.
* @txrate: current unicast bitrate from this station
* @txrate: current unicast bitrate from this station
* @rxrate: current unicast bitrate to this station
* @rxrate: current unicast bitrate to this station
* @rx_packets: packets received from this station
* @rx_packets: packets received from this station
...
...
net/mac80211/agg-rx.c
View file @
7dd30d44
...
@@ -49,6 +49,8 @@ static void ieee80211_free_tid_rx(struct rcu_head *h)
...
@@ -49,6 +49,8 @@ static void ieee80211_free_tid_rx(struct rcu_head *h)
container_of
(
h
,
struct
tid_ampdu_rx
,
rcu_head
);
container_of
(
h
,
struct
tid_ampdu_rx
,
rcu_head
);
int
i
;
int
i
;
del_timer_sync
(
&
tid_rx
->
reorder_timer
);
for
(
i
=
0
;
i
<
tid_rx
->
buf_size
;
i
++
)
for
(
i
=
0
;
i
<
tid_rx
->
buf_size
;
i
++
)
dev_kfree_skb
(
tid_rx
->
reorder_buf
[
i
]);
dev_kfree_skb
(
tid_rx
->
reorder_buf
[
i
]);
kfree
(
tid_rx
->
reorder_buf
);
kfree
(
tid_rx
->
reorder_buf
);
...
@@ -91,7 +93,6 @@ void ___ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid,
...
@@ -91,7 +93,6 @@ void ___ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid,
tid
,
WLAN_BACK_RECIPIENT
,
reason
);
tid
,
WLAN_BACK_RECIPIENT
,
reason
);
del_timer_sync
(
&
tid_rx
->
session_timer
);
del_timer_sync
(
&
tid_rx
->
session_timer
);
del_timer_sync
(
&
tid_rx
->
reorder_timer
);
call_rcu
(
&
tid_rx
->
rcu_head
,
ieee80211_free_tid_rx
);
call_rcu
(
&
tid_rx
->
rcu_head
,
ieee80211_free_tid_rx
);
}
}
...
...
net/mac80211/main.c
View file @
7dd30d44
...
@@ -102,9 +102,6 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
...
@@ -102,9 +102,6 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
might_sleep
();
might_sleep
();
/* If this off-channel logic ever changes, ieee80211_on_oper_channel
* may need to change as well.
*/
offchannel_flag
=
local
->
hw
.
conf
.
flags
&
IEEE80211_CONF_OFFCHANNEL
;
offchannel_flag
=
local
->
hw
.
conf
.
flags
&
IEEE80211_CONF_OFFCHANNEL
;
if
(
local
->
scan_channel
)
{
if
(
local
->
scan_channel
)
{
chan
=
local
->
scan_channel
;
chan
=
local
->
scan_channel
;
...
...
net/wireless/nl80211.c
View file @
7dd30d44
...
@@ -2386,7 +2386,9 @@ static bool nl80211_put_sta_rate(struct sk_buff *msg, struct rate_info *info,
...
@@ -2386,7 +2386,9 @@ static bool nl80211_put_sta_rate(struct sk_buff *msg, struct rate_info *info,
}
}
static
int
nl80211_send_station
(
struct
sk_buff
*
msg
,
u32
pid
,
u32
seq
,
static
int
nl80211_send_station
(
struct
sk_buff
*
msg
,
u32
pid
,
u32
seq
,
int
flags
,
struct
net_device
*
dev
,
int
flags
,
struct
cfg80211_registered_device
*
rdev
,
struct
net_device
*
dev
,
const
u8
*
mac_addr
,
struct
station_info
*
sinfo
)
const
u8
*
mac_addr
,
struct
station_info
*
sinfo
)
{
{
void
*
hdr
;
void
*
hdr
;
...
@@ -2425,12 +2427,18 @@ static int nl80211_send_station(struct sk_buff *msg, u32 pid, u32 seq,
...
@@ -2425,12 +2427,18 @@ static int nl80211_send_station(struct sk_buff *msg, u32 pid, u32 seq,
if
(
sinfo
->
filled
&
STATION_INFO_PLINK_STATE
)
if
(
sinfo
->
filled
&
STATION_INFO_PLINK_STATE
)
NLA_PUT_U8
(
msg
,
NL80211_STA_INFO_PLINK_STATE
,
NLA_PUT_U8
(
msg
,
NL80211_STA_INFO_PLINK_STATE
,
sinfo
->
plink_state
);
sinfo
->
plink_state
);
if
(
sinfo
->
filled
&
STATION_INFO_SIGNAL
)
switch
(
rdev
->
wiphy
.
signal_type
)
{
NLA_PUT_U8
(
msg
,
NL80211_STA_INFO_SIGNAL
,
case
CFG80211_SIGNAL_TYPE_MBM
:
sinfo
->
signal
);
if
(
sinfo
->
filled
&
STATION_INFO_SIGNAL
)
if
(
sinfo
->
filled
&
STATION_INFO_SIGNAL_AVG
)
NLA_PUT_U8
(
msg
,
NL80211_STA_INFO_SIGNAL
,
NLA_PUT_U8
(
msg
,
NL80211_STA_INFO_SIGNAL_AVG
,
sinfo
->
signal
);
sinfo
->
signal_avg
);
if
(
sinfo
->
filled
&
STATION_INFO_SIGNAL_AVG
)
NLA_PUT_U8
(
msg
,
NL80211_STA_INFO_SIGNAL_AVG
,
sinfo
->
signal_avg
);
break
;
default:
break
;
}
if
(
sinfo
->
filled
&
STATION_INFO_TX_BITRATE
)
{
if
(
sinfo
->
filled
&
STATION_INFO_TX_BITRATE
)
{
if
(
!
nl80211_put_sta_rate
(
msg
,
&
sinfo
->
txrate
,
if
(
!
nl80211_put_sta_rate
(
msg
,
&
sinfo
->
txrate
,
NL80211_STA_INFO_TX_BITRATE
))
NL80211_STA_INFO_TX_BITRATE
))
...
@@ -2523,7 +2531,7 @@ static int nl80211_dump_station(struct sk_buff *skb,
...
@@ -2523,7 +2531,7 @@ static int nl80211_dump_station(struct sk_buff *skb,
if
(
nl80211_send_station
(
skb
,
if
(
nl80211_send_station
(
skb
,
NETLINK_CB
(
cb
->
skb
).
pid
,
NETLINK_CB
(
cb
->
skb
).
pid
,
cb
->
nlh
->
nlmsg_seq
,
NLM_F_MULTI
,
cb
->
nlh
->
nlmsg_seq
,
NLM_F_MULTI
,
netdev
,
mac_addr
,
dev
,
netdev
,
mac_addr
,
&
sinfo
)
<
0
)
&
sinfo
)
<
0
)
goto
out
;
goto
out
;
...
@@ -2568,7 +2576,7 @@ static int nl80211_get_station(struct sk_buff *skb, struct genl_info *info)
...
@@ -2568,7 +2576,7 @@ static int nl80211_get_station(struct sk_buff *skb, struct genl_info *info)
return
-
ENOMEM
;
return
-
ENOMEM
;
if
(
nl80211_send_station
(
msg
,
info
->
snd_pid
,
info
->
snd_seq
,
0
,
if
(
nl80211_send_station
(
msg
,
info
->
snd_pid
,
info
->
snd_seq
,
0
,
dev
,
mac_addr
,
&
sinfo
)
<
0
)
{
rdev
,
dev
,
mac_addr
,
&
sinfo
)
<
0
)
{
nlmsg_free
(
msg
);
nlmsg_free
(
msg
);
return
-
ENOBUFS
;
return
-
ENOBUFS
;
}
}
...
@@ -7596,7 +7604,8 @@ void nl80211_send_sta_event(struct cfg80211_registered_device *rdev,
...
@@ -7596,7 +7604,8 @@ void nl80211_send_sta_event(struct cfg80211_registered_device *rdev,
if
(
!
msg
)
if
(
!
msg
)
return
;
return
;
if
(
nl80211_send_station
(
msg
,
0
,
0
,
0
,
dev
,
mac_addr
,
sinfo
)
<
0
)
{
if
(
nl80211_send_station
(
msg
,
0
,
0
,
0
,
rdev
,
dev
,
mac_addr
,
sinfo
)
<
0
)
{
nlmsg_free
(
msg
);
nlmsg_free
(
msg
);
return
;
return
;
}
}
...
...
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