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
b5b51509
Commit
b5b51509
authored
Nov 23, 2009
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-2.6
parents
dcfcb256
45ba564d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
28 additions
and
20 deletions
+28
-20
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/main.c
+2
-0
net/mac80211/agg-tx.c
net/mac80211/agg-tx.c
+8
-10
net/mac80211/ieee80211_i.h
net/mac80211/ieee80211_i.h
+8
-0
net/mac80211/util.c
net/mac80211/util.c
+9
-10
net/rfkill/core.c
net/rfkill/core.c
+1
-0
No files found.
drivers/net/wireless/ath/ath9k/main.c
View file @
b5b51509
...
@@ -1555,6 +1555,8 @@ void ath_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
...
@@ -1555,6 +1555,8 @@ void ath_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
BIT
(
NL80211_IFTYPE_ADHOC
)
|
BIT
(
NL80211_IFTYPE_ADHOC
)
|
BIT
(
NL80211_IFTYPE_MESH_POINT
);
BIT
(
NL80211_IFTYPE_MESH_POINT
);
hw
->
wiphy
->
ps_default
=
false
;
hw
->
queues
=
4
;
hw
->
queues
=
4
;
hw
->
max_rates
=
4
;
hw
->
max_rates
=
4
;
hw
->
channel_change_time
=
5000
;
hw
->
channel_change_time
=
5000
;
...
...
net/mac80211/agg-tx.c
View file @
b5b51509
...
@@ -173,12 +173,14 @@ static void sta_addba_resp_timer_expired(unsigned long data)
...
@@ -173,12 +173,14 @@ static void sta_addba_resp_timer_expired(unsigned long data)
/* check if the TID waits for addBA response */
/* check if the TID waits for addBA response */
spin_lock_bh
(
&
sta
->
lock
);
spin_lock_bh
(
&
sta
->
lock
);
if
(
!
(
*
state
&
HT_ADDBA_REQUESTED_MSK
))
{
if
((
*
state
&
(
HT_ADDBA_REQUESTED_MSK
|
HT_ADDBA_RECEIVED_MSK
))
!=
HT_ADDBA_REQUESTED_MSK
)
{
spin_unlock_bh
(
&
sta
->
lock
);
spin_unlock_bh
(
&
sta
->
lock
);
*
state
=
HT_AGG_STATE_IDLE
;
*
state
=
HT_AGG_STATE_IDLE
;
#ifdef CONFIG_MAC80211_HT_DEBUG
#ifdef CONFIG_MAC80211_HT_DEBUG
printk
(
KERN_DEBUG
"timer expired on tid %d but we are not "
printk
(
KERN_DEBUG
"timer expired on tid %d but we are not "
"expecting addBA response there"
,
tid
);
"(or no longer) expecting addBA response there"
,
tid
);
#endif
#endif
return
;
return
;
}
}
...
@@ -666,21 +668,21 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
...
@@ -666,21 +668,21 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
state
=
&
sta
->
ampdu_mlme
.
tid_state_tx
[
tid
];
state
=
&
sta
->
ampdu_mlme
.
tid_state_tx
[
tid
];
del_timer_sync
(
&
sta
->
ampdu_mlme
.
tid_tx
[
tid
]
->
addba_resp_timer
);
spin_lock_bh
(
&
sta
->
lock
);
spin_lock_bh
(
&
sta
->
lock
);
if
(
!
(
*
state
&
HT_ADDBA_REQUESTED_MSK
))
if
(
!
(
*
state
&
HT_ADDBA_REQUESTED_MSK
))
goto
timer_still_needed
;
goto
out
;
if
(
mgmt
->
u
.
action
.
u
.
addba_resp
.
dialog_token
!=
if
(
mgmt
->
u
.
action
.
u
.
addba_resp
.
dialog_token
!=
sta
->
ampdu_mlme
.
tid_tx
[
tid
]
->
dialog_token
)
{
sta
->
ampdu_mlme
.
tid_tx
[
tid
]
->
dialog_token
)
{
#ifdef CONFIG_MAC80211_HT_DEBUG
#ifdef CONFIG_MAC80211_HT_DEBUG
printk
(
KERN_DEBUG
"wrong addBA response token, tid %d
\n
"
,
tid
);
printk
(
KERN_DEBUG
"wrong addBA response token, tid %d
\n
"
,
tid
);
#endif
/* CONFIG_MAC80211_HT_DEBUG */
#endif
/* CONFIG_MAC80211_HT_DEBUG */
goto
timer_still_needed
;
goto
out
;
}
}
del_timer
(
&
sta
->
ampdu_mlme
.
tid_tx
[
tid
]
->
addba_resp_timer
);
#ifdef CONFIG_MAC80211_HT_DEBUG
#ifdef CONFIG_MAC80211_HT_DEBUG
printk
(
KERN_DEBUG
"switched off addBA timer for tid %d
\n
"
,
tid
);
printk
(
KERN_DEBUG
"switched off addBA timer for tid %d
\n
"
,
tid
);
#endif
/* CONFIG_MAC80211_HT_DEBUG */
#endif
/* CONFIG_MAC80211_HT_DEBUG */
...
@@ -699,10 +701,6 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
...
@@ -699,10 +701,6 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
___ieee80211_stop_tx_ba_session
(
sta
,
tid
,
WLAN_BACK_INITIATOR
);
___ieee80211_stop_tx_ba_session
(
sta
,
tid
,
WLAN_BACK_INITIATOR
);
}
}
goto
out
;
timer_still_needed:
add_timer
(
&
sta
->
ampdu_mlme
.
tid_tx
[
tid
]
->
addba_resp_timer
);
out:
out:
spin_unlock_bh
(
&
sta
->
lock
);
spin_unlock_bh
(
&
sta
->
lock
);
}
}
net/mac80211/ieee80211_i.h
View file @
b5b51509
...
@@ -661,6 +661,14 @@ struct ieee80211_local {
...
@@ -661,6 +661,14 @@ struct ieee80211_local {
*/
*/
bool
suspended
;
bool
suspended
;
/*
* Resuming is true while suspended, but when we're reprogramming the
* hardware -- at that time it's allowed to use ieee80211_queue_work()
* again even though some other parts of the stack are still suspended
* and we still drop received frames to avoid waking the stack.
*/
bool
resuming
;
/*
/*
* quiescing is true during the suspend process _only_ to
* quiescing is true during the suspend process _only_ to
* ease timer cancelling etc.
* ease timer cancelling etc.
...
...
net/mac80211/util.c
View file @
b5b51509
...
@@ -520,9 +520,9 @@ EXPORT_SYMBOL_GPL(ieee80211_iterate_active_interfaces_atomic);
...
@@ -520,9 +520,9 @@ EXPORT_SYMBOL_GPL(ieee80211_iterate_active_interfaces_atomic);
*/
*/
static
bool
ieee80211_can_queue_work
(
struct
ieee80211_local
*
local
)
static
bool
ieee80211_can_queue_work
(
struct
ieee80211_local
*
local
)
{
{
if
(
WARN
(
local
->
suspended
,
"queueing ieee80211 work while "
if
(
WARN
(
local
->
suspended
&&
!
local
->
resuming
,
"going to suspend
\n
"
))
"
queueing ieee80211 work while
going to suspend
\n
"
))
return
false
;
return
false
;
return
true
;
return
true
;
}
}
...
@@ -1025,13 +1025,9 @@ int ieee80211_reconfig(struct ieee80211_local *local)
...
@@ -1025,13 +1025,9 @@ int ieee80211_reconfig(struct ieee80211_local *local)
struct
sta_info
*
sta
;
struct
sta_info
*
sta
;
unsigned
long
flags
;
unsigned
long
flags
;
int
res
;
int
res
;
bool
from_suspend
=
local
->
suspended
;
/*
if
(
local
->
suspended
)
* We're going to start the hardware, at that point
local
->
resuming
=
true
;
* we are no longer suspended and can RX frames.
*/
local
->
suspended
=
false
;
/* restart hardware */
/* restart hardware */
if
(
local
->
open_count
)
{
if
(
local
->
open_count
)
{
...
@@ -1129,11 +1125,14 @@ int ieee80211_reconfig(struct ieee80211_local *local)
...
@@ -1129,11 +1125,14 @@ int ieee80211_reconfig(struct ieee80211_local *local)
* If this is for hw restart things are still running.
* If this is for hw restart things are still running.
* We may want to change that later, however.
* We may want to change that later, however.
*/
*/
if
(
!
from_suspen
d
)
if
(
!
local
->
suspende
d
)
return
0
;
return
0
;
#ifdef CONFIG_PM
#ifdef CONFIG_PM
/* first set suspended false, then resuming */
local
->
suspended
=
false
;
local
->
suspended
=
false
;
mb
();
local
->
resuming
=
false
;
list_for_each_entry
(
sdata
,
&
local
->
interfaces
,
list
)
{
list_for_each_entry
(
sdata
,
&
local
->
interfaces
,
list
)
{
switch
(
sdata
->
vif
.
type
)
{
switch
(
sdata
->
vif
.
type
)
{
...
...
net/rfkill/core.c
View file @
b5b51509
...
@@ -1189,6 +1189,7 @@ static long rfkill_fop_ioctl(struct file *file, unsigned int cmd,
...
@@ -1189,6 +1189,7 @@ static long rfkill_fop_ioctl(struct file *file, unsigned int cmd,
#endif
#endif
static
const
struct
file_operations
rfkill_fops
=
{
static
const
struct
file_operations
rfkill_fops
=
{
.
owner
=
THIS_MODULE
,
.
open
=
rfkill_fop_open
,
.
open
=
rfkill_fop_open
,
.
read
=
rfkill_fop_read
,
.
read
=
rfkill_fop_read
,
.
write
=
rfkill_fop_write
,
.
write
=
rfkill_fop_write
,
...
...
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