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
53438e5d
Commit
53438e5d
authored
Nov 20, 2007
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fixes-davem' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
parents
1f305323
92468c53
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
37 additions
and
6 deletions
+37
-6
include/net/ieee80211.h
include/net/ieee80211.h
+8
-0
net/ieee80211/ieee80211_crypt_ccmp.c
net/ieee80211/ieee80211_crypt_ccmp.c
+1
-1
net/ieee80211/ieee80211_crypt_tkip.c
net/ieee80211/ieee80211_crypt_tkip.c
+2
-2
net/mac80211/ieee80211.c
net/mac80211/ieee80211.c
+25
-2
net/mac80211/ieee80211_sta.c
net/mac80211/ieee80211_sta.c
+1
-1
No files found.
include/net/ieee80211.h
View file @
53438e5d
...
...
@@ -115,8 +115,16 @@ extern u32 ieee80211_debug_level;
do { if (ieee80211_debug_level & (level)) \
printk(KERN_DEBUG "ieee80211: %c %s " fmt, \
in_interrupt() ? 'I' : 'U', __FUNCTION__ , ## args); } while (0)
static
inline
bool
ieee80211_ratelimit_debug
(
u32
level
)
{
return
(
ieee80211_debug_level
&
level
)
&&
net_ratelimit
();
}
#else
#define IEEE80211_DEBUG(level, fmt, args...) do {} while (0)
static
inline
bool
ieee80211_ratelimit_debug
(
u32
level
)
{
return
false
;
}
#endif
/* CONFIG_IEEE80211_DEBUG */
/* escape_essid() is intended to be used in debug (and possibly error)
...
...
net/ieee80211/ieee80211_crypt_ccmp.c
View file @
53438e5d
...
...
@@ -338,7 +338,7 @@ static int ieee80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv)
pos
+=
8
;
if
(
ccmp_replay_check
(
pn
,
key
->
rx_pn
))
{
if
(
net_ratelimit
(
))
{
if
(
ieee80211_ratelimit_debug
(
IEEE80211_DL_DROP
))
{
IEEE80211_DEBUG_DROP
(
"CCMP: replay detected: STA=%s "
"previous PN %02x%02x%02x%02x%02x%02x "
"received PN %02x%02x%02x%02x%02x%02x
\n
"
,
...
...
net/ieee80211/ieee80211_crypt_tkip.c
View file @
53438e5d
...
...
@@ -464,7 +464,7 @@ static int ieee80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv)
pos
+=
8
;
if
(
tkip_replay_check
(
iv32
,
iv16
,
tkey
->
rx_iv32
,
tkey
->
rx_iv16
))
{
if
(
net_ratelimit
(
))
{
if
(
ieee80211_ratelimit_debug
(
IEEE80211_DL_DROP
))
{
IEEE80211_DEBUG_DROP
(
"TKIP: replay detected: STA=%s"
" previous TSC %08x%04x received TSC "
"%08x%04x
\n
"
,
print_mac
(
mac
,
hdr
->
addr2
),
...
...
@@ -504,7 +504,7 @@ static int ieee80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv)
* it needs to be recalculated for the next packet. */
tkey
->
rx_phase1_done
=
0
;
}
if
(
net_ratelimit
(
))
{
if
(
ieee80211_ratelimit_debug
(
IEEE80211_DL_DROP
))
{
IEEE80211_DEBUG_DROP
(
"TKIP: ICV error detected: STA="
"%s
\n
"
,
print_mac
(
mac
,
hdr
->
addr2
));
}
...
...
net/mac80211/ieee80211.c
View file @
53438e5d
...
...
@@ -267,6 +267,17 @@ static int ieee80211_open(struct net_device *dev)
tasklet_enable
(
&
local
->
tasklet
);
}
/*
* set_multicast_list will be invoked by the networking core
* which will check whether any increments here were done in
* error and sync them down to the hardware as filter flags.
*/
if
(
sdata
->
flags
&
IEEE80211_SDATA_ALLMULTI
)
atomic_inc
(
&
local
->
iff_allmultis
);
if
(
sdata
->
flags
&
IEEE80211_SDATA_PROMISC
)
atomic_inc
(
&
local
->
iff_promiscs
);
local
->
open_count
++
;
netif_start_queue
(
dev
);
...
...
@@ -284,6 +295,18 @@ static int ieee80211_stop(struct net_device *dev)
netif_stop_queue
(
dev
);
/*
* Don't count this interface for promisc/allmulti while it
* is down. dev_mc_unsync() will invoke set_multicast_list
* on the master interface which will sync these down to the
* hardware as filter flags.
*/
if
(
sdata
->
flags
&
IEEE80211_SDATA_ALLMULTI
)
atomic_dec
(
&
local
->
iff_allmultis
);
if
(
sdata
->
flags
&
IEEE80211_SDATA_PROMISC
)
atomic_dec
(
&
local
->
iff_promiscs
);
dev_mc_unsync
(
local
->
mdev
,
dev
);
/* down all dependent devices, that is VLANs */
...
...
@@ -366,8 +389,8 @@ static void ieee80211_set_multicast_list(struct net_device *dev)
allmulti
=
!!
(
dev
->
flags
&
IFF_ALLMULTI
);
promisc
=
!!
(
dev
->
flags
&
IFF_PROMISC
);
sdata_allmulti
=
sdata
->
flags
&
IEEE80211_SDATA_ALLMULTI
;
sdata_promisc
=
sdata
->
flags
&
IEEE80211_SDATA_PROMISC
;
sdata_allmulti
=
!!
(
sdata
->
flags
&
IEEE80211_SDATA_ALLMULTI
)
;
sdata_promisc
=
!!
(
sdata
->
flags
&
IEEE80211_SDATA_PROMISC
)
;
if
(
allmulti
!=
sdata_allmulti
)
{
if
(
dev
->
flags
&
IFF_ALLMULTI
)
...
...
net/mac80211/ieee80211_sta.c
View file @
53438e5d
...
...
@@ -2647,7 +2647,7 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw)
local
->
sta_scanning
=
0
;
if
(
ieee80211_hw_config
(
local
))
printk
(
KERN_DEBUG
"%s: failed to restore operational"
printk
(
KERN_DEBUG
"%s: failed to restore operational
"
"channel after scan
\n
"
,
dev
->
name
);
...
...
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