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
de02d72b
Commit
de02d72b
authored
May 10, 2010
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
f0ecde14
79733a86
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
37 additions
and
8 deletions
+37
-8
drivers/net/wireless/ath/ar9170/usb.c
drivers/net/wireless/ath/ar9170/usb.c
+11
-0
drivers/net/wireless/ath/ar9170/usb.h
drivers/net/wireless/ath/ar9170/usb.h
+1
-0
drivers/net/wireless/iwlwifi/iwl-commands.h
drivers/net/wireless/iwlwifi/iwl-commands.h
+3
-1
drivers/net/wireless/iwlwifi/iwl-scan.c
drivers/net/wireless/iwlwifi/iwl-scan.c
+18
-5
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
+2
-1
net/mac80211/mlme.c
net/mac80211/mlme.c
+2
-1
No files found.
drivers/net/wireless/ath/ar9170/usb.c
View file @
de02d72b
...
@@ -727,12 +727,16 @@ static void ar9170_usb_firmware_failed(struct ar9170_usb *aru)
...
@@ -727,12 +727,16 @@ static void ar9170_usb_firmware_failed(struct ar9170_usb *aru)
{
{
struct
device
*
parent
=
aru
->
udev
->
dev
.
parent
;
struct
device
*
parent
=
aru
->
udev
->
dev
.
parent
;
complete
(
&
aru
->
firmware_loading_complete
);
/* unbind anything failed */
/* unbind anything failed */
if
(
parent
)
if
(
parent
)
down
(
&
parent
->
sem
);
down
(
&
parent
->
sem
);
device_release_driver
(
&
aru
->
udev
->
dev
);
device_release_driver
(
&
aru
->
udev
->
dev
);
if
(
parent
)
if
(
parent
)
up
(
&
parent
->
sem
);
up
(
&
parent
->
sem
);
usb_put_dev
(
aru
->
udev
);
}
}
static
void
ar9170_usb_firmware_finish
(
const
struct
firmware
*
fw
,
void
*
context
)
static
void
ar9170_usb_firmware_finish
(
const
struct
firmware
*
fw
,
void
*
context
)
...
@@ -761,6 +765,8 @@ static void ar9170_usb_firmware_finish(const struct firmware *fw, void *context)
...
@@ -761,6 +765,8 @@ static void ar9170_usb_firmware_finish(const struct firmware *fw, void *context)
if
(
err
)
if
(
err
)
goto
err_unrx
;
goto
err_unrx
;
complete
(
&
aru
->
firmware_loading_complete
);
usb_put_dev
(
aru
->
udev
);
return
;
return
;
err_unrx:
err_unrx:
...
@@ -858,6 +864,7 @@ static int ar9170_usb_probe(struct usb_interface *intf,
...
@@ -858,6 +864,7 @@ static int ar9170_usb_probe(struct usb_interface *intf,
init_usb_anchor
(
&
aru
->
tx_pending
);
init_usb_anchor
(
&
aru
->
tx_pending
);
init_usb_anchor
(
&
aru
->
tx_submitted
);
init_usb_anchor
(
&
aru
->
tx_submitted
);
init_completion
(
&
aru
->
cmd_wait
);
init_completion
(
&
aru
->
cmd_wait
);
init_completion
(
&
aru
->
firmware_loading_complete
);
spin_lock_init
(
&
aru
->
tx_urb_lock
);
spin_lock_init
(
&
aru
->
tx_urb_lock
);
aru
->
tx_pending_urbs
=
0
;
aru
->
tx_pending_urbs
=
0
;
...
@@ -877,6 +884,7 @@ static int ar9170_usb_probe(struct usb_interface *intf,
...
@@ -877,6 +884,7 @@ static int ar9170_usb_probe(struct usb_interface *intf,
if
(
err
)
if
(
err
)
goto
err_freehw
;
goto
err_freehw
;
usb_get_dev
(
aru
->
udev
);
return
request_firmware_nowait
(
THIS_MODULE
,
1
,
"ar9170.fw"
,
return
request_firmware_nowait
(
THIS_MODULE
,
1
,
"ar9170.fw"
,
&
aru
->
udev
->
dev
,
GFP_KERNEL
,
aru
,
&
aru
->
udev
->
dev
,
GFP_KERNEL
,
aru
,
ar9170_usb_firmware_step2
);
ar9170_usb_firmware_step2
);
...
@@ -896,6 +904,9 @@ static void ar9170_usb_disconnect(struct usb_interface *intf)
...
@@ -896,6 +904,9 @@ static void ar9170_usb_disconnect(struct usb_interface *intf)
return
;
return
;
aru
->
common
.
state
=
AR9170_IDLE
;
aru
->
common
.
state
=
AR9170_IDLE
;
wait_for_completion
(
&
aru
->
firmware_loading_complete
);
ar9170_unregister
(
&
aru
->
common
);
ar9170_unregister
(
&
aru
->
common
);
ar9170_usb_cancel_urbs
(
aru
);
ar9170_usb_cancel_urbs
(
aru
);
...
...
drivers/net/wireless/ath/ar9170/usb.h
View file @
de02d72b
...
@@ -71,6 +71,7 @@ struct ar9170_usb {
...
@@ -71,6 +71,7 @@ struct ar9170_usb {
unsigned
int
tx_pending_urbs
;
unsigned
int
tx_pending_urbs
;
struct
completion
cmd_wait
;
struct
completion
cmd_wait
;
struct
completion
firmware_loading_complete
;
int
readlen
;
int
readlen
;
u8
*
readbuf
;
u8
*
readbuf
;
...
...
drivers/net/wireless/iwlwifi/iwl-commands.h
View file @
de02d72b
...
@@ -2621,7 +2621,9 @@ struct iwl_ssid_ie {
...
@@ -2621,7 +2621,9 @@ struct iwl_ssid_ie {
#define PROBE_OPTION_MAX_3945 4
#define PROBE_OPTION_MAX_3945 4
#define PROBE_OPTION_MAX 20
#define PROBE_OPTION_MAX 20
#define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF)
#define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF)
#define IWL_GOOD_CRC_TH cpu_to_le16(1)
#define IWL_GOOD_CRC_TH_DISABLED 0
#define IWL_GOOD_CRC_TH_DEFAULT cpu_to_le16(1)
#define IWL_GOOD_CRC_TH_NEVER cpu_to_le16(0xffff)
#define IWL_MAX_SCAN_SIZE 1024
#define IWL_MAX_SCAN_SIZE 1024
#define IWL_MAX_CMD_SIZE 4096
#define IWL_MAX_CMD_SIZE 4096
#define IWL_MAX_PROBE_REQUEST 200
#define IWL_MAX_PROBE_REQUEST 200
...
...
drivers/net/wireless/iwlwifi/iwl-scan.c
View file @
de02d72b
...
@@ -813,16 +813,29 @@ static void iwl_bg_request_scan(struct work_struct *data)
...
@@ -813,16 +813,29 @@ static void iwl_bg_request_scan(struct work_struct *data)
rate
=
IWL_RATE_1M_PLCP
;
rate
=
IWL_RATE_1M_PLCP
;
rate_flags
=
RATE_MCS_CCK_MSK
;
rate_flags
=
RATE_MCS_CCK_MSK
;
}
}
scan
->
good_CRC_th
=
0
;
scan
->
good_CRC_th
=
IWL_GOOD_CRC_TH_DISABLED
;
}
else
if
(
priv
->
scan_bands
&
BIT
(
IEEE80211_BAND_5GHZ
))
{
}
else
if
(
priv
->
scan_bands
&
BIT
(
IEEE80211_BAND_5GHZ
))
{
band
=
IEEE80211_BAND_5GHZ
;
band
=
IEEE80211_BAND_5GHZ
;
rate
=
IWL_RATE_6M_PLCP
;
rate
=
IWL_RATE_6M_PLCP
;
/*
/*
* If active scaning is requested but a certain channel
* If active scanning is requested but a certain channel is
* is marked passive, we can do active scanning if we
* marked passive, we can do active scanning if we detect
* detect transmissions.
* transmissions.
*
* There is an issue with some firmware versions that triggers
* a sysassert on a "good CRC threshold" of zero (== disabled),
* on a radar channel even though this means that we should NOT
* send probes.
*
* The "good CRC threshold" is the number of frames that we
* need to receive during our dwell time on a channel before
* sending out probes -- setting this to a huge value will
* mean we never reach it, but at the same time work around
* the aforementioned issue. Thus use IWL_GOOD_CRC_TH_NEVER
* here instead of IWL_GOOD_CRC_TH_DISABLED.
*/
*/
scan
->
good_CRC_th
=
is_active
?
IWL_GOOD_CRC_TH
:
0
;
scan
->
good_CRC_th
=
is_active
?
IWL_GOOD_CRC_TH_DEFAULT
:
IWL_GOOD_CRC_TH_NEVER
;
/* Force use of chains B and C (0x6) for scan Rx for 4965
/* Force use of chains B and C (0x6) for scan Rx for 4965
* Avoid A (0x1) because of its off-channel reception on A-band.
* Avoid A (0x1) because of its off-channel reception on A-band.
...
...
drivers/net/wireless/iwlwifi/iwl3945-base.c
View file @
de02d72b
...
@@ -2967,7 +2967,8 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
...
@@ -2967,7 +2967,8 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
* is marked passive, we can do active scanning if we
* is marked passive, we can do active scanning if we
* detect transmissions.
* detect transmissions.
*/
*/
scan
->
good_CRC_th
=
is_active
?
IWL_GOOD_CRC_TH
:
0
;
scan
->
good_CRC_th
=
is_active
?
IWL_GOOD_CRC_TH_DEFAULT
:
IWL_GOOD_CRC_TH_DISABLED
;
band
=
IEEE80211_BAND_5GHZ
;
band
=
IEEE80211_BAND_5GHZ
;
}
else
{
}
else
{
IWL_WARN
(
priv
,
"Invalid scan band count
\n
"
);
IWL_WARN
(
priv
,
"Invalid scan band count
\n
"
);
...
...
net/mac80211/mlme.c
View file @
de02d72b
...
@@ -2030,7 +2030,8 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
...
@@ -2030,7 +2030,8 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
continue
;
continue
;
if
(
wk
->
type
!=
IEEE80211_WORK_DIRECT_PROBE
&&
if
(
wk
->
type
!=
IEEE80211_WORK_DIRECT_PROBE
&&
wk
->
type
!=
IEEE80211_WORK_AUTH
)
wk
->
type
!=
IEEE80211_WORK_AUTH
&&
wk
->
type
!=
IEEE80211_WORK_ASSOC
)
continue
;
continue
;
if
(
memcmp
(
req
->
bss
->
bssid
,
wk
->
filter_ta
,
ETH_ALEN
))
if
(
memcmp
(
req
->
bss
->
bssid
,
wk
->
filter_ta
,
ETH_ALEN
))
...
...
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