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
d14a7679
Commit
d14a7679
authored
Jul 22, 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
de72e5de
15483996
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
94 additions
and
33 deletions
+94
-33
drivers/net/wireless/ath/ath5k/base.c
drivers/net/wireless/ath/ath5k/base.c
+3
-0
drivers/net/wireless/ath/ath9k/ani.c
drivers/net/wireless/ath/ath9k/ani.c
+12
-0
drivers/net/wireless/ath/regd.c
drivers/net/wireless/ath/regd.c
+17
-0
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.c
+1
-3
drivers/net/wireless/iwlwifi/iwl-tx.c
drivers/net/wireless/iwlwifi/iwl-tx.c
+2
-1
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
+1
-3
drivers/net/wireless/iwmc3200wifi/netdev.c
drivers/net/wireless/iwmc3200wifi/netdev.c
+1
-1
drivers/net/wireless/libertas/cmd.c
drivers/net/wireless/libertas/cmd.c
+7
-1
drivers/net/wireless/libertas/defs.h
drivers/net/wireless/libertas/defs.h
+2
-0
drivers/net/wireless/mac80211_hwsim.c
drivers/net/wireless/mac80211_hwsim.c
+3
-3
drivers/net/wireless/p54/p54spi.c
drivers/net/wireless/p54/p54spi.c
+1
-1
drivers/net/wireless/rt2x00/rt2500usb.c
drivers/net/wireless/rt2x00/rt2500usb.c
+3
-1
drivers/net/wireless/rtl818x/rtl8187_leds.c
drivers/net/wireless/rtl818x/rtl8187_leds.c
+2
-1
drivers/platform/x86/acer-wmi.c
drivers/platform/x86/acer-wmi.c
+1
-1
include/linux/rfkill.h
include/linux/rfkill.h
+1
-1
net/mac80211/Kconfig
net/mac80211/Kconfig
+1
-0
net/mac80211/mesh_pathtbl.c
net/mac80211/mesh_pathtbl.c
+8
-3
net/mac80211/tx.c
net/mac80211/tx.c
+1
-1
net/rfkill/core.c
net/rfkill/core.c
+23
-8
net/wireless/nl80211.c
net/wireless/nl80211.c
+3
-2
net/wireless/scan.c
net/wireless/scan.c
+1
-2
No files found.
drivers/net/wireless/ath/ath5k/base.c
View file @
d14a7679
...
...
@@ -2970,6 +2970,9 @@ ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
if
(
modparam_nohwcrypt
)
return
-
EOPNOTSUPP
;
if
(
sc
->
opmode
==
NL80211_IFTYPE_AP
)
return
-
EOPNOTSUPP
;
switch
(
key
->
alg
)
{
case
ALG_WEP
:
case
ALG_TKIP
:
...
...
drivers/net/wireless/ath/ath9k/ani.c
View file @
d14a7679
...
...
@@ -478,6 +478,18 @@ void ath9k_ani_reset(struct ath_hw *ah)
"Reset ANI state opmode %u
\n
"
,
ah
->
opmode
);
ah
->
stats
.
ast_ani_reset
++
;
if
(
ah
->
opmode
==
NL80211_IFTYPE_AP
)
{
/*
* ath9k_hw_ani_control() will only process items set on
* ah->ani_function
*/
if
(
IS_CHAN_2GHZ
(
chan
))
ah
->
ani_function
=
(
ATH9K_ANI_SPUR_IMMUNITY_LEVEL
|
ATH9K_ANI_FIRSTEP_LEVEL
);
else
ah
->
ani_function
=
0
;
}
ath9k_hw_ani_control
(
ah
,
ATH9K_ANI_NOISE_IMMUNITY_LEVEL
,
0
);
ath9k_hw_ani_control
(
ah
,
ATH9K_ANI_SPUR_IMMUNITY_LEVEL
,
0
);
ath9k_hw_ani_control
(
ah
,
ATH9K_ANI_FIRSTEP_LEVEL
,
0
);
...
...
drivers/net/wireless/ath/regd.c
View file @
d14a7679
...
...
@@ -474,6 +474,21 @@ ath_regd_init_wiphy(struct ath_regulatory *reg,
return
0
;
}
/*
* Some users have reported their EEPROM programmed with
* 0x8000 set, this is not a supported regulatory domain
* but since we have more than one user with it we need
* a solution for them. We default to 0x64, which is the
* default Atheros world regulatory domain.
*/
static
void
ath_regd_sanitize
(
struct
ath_regulatory
*
reg
)
{
if
(
reg
->
current_rd
!=
COUNTRY_ERD_FLAG
)
return
;
printk
(
KERN_DEBUG
"ath: EEPROM regdomain sanitized
\n
"
);
reg
->
current_rd
=
0x64
;
}
int
ath_regd_init
(
struct
ath_regulatory
*
reg
,
struct
wiphy
*
wiphy
,
...
...
@@ -486,6 +501,8 @@ ath_regd_init(struct ath_regulatory *reg,
if
(
!
reg
)
return
-
EINVAL
;
ath_regd_sanitize
(
reg
);
printk
(
KERN_DEBUG
"ath: EEPROM regdomain: 0x%0x
\n
"
,
reg
->
current_rd
);
if
(
!
ath_regd_is_eeprom_valid
(
reg
))
{
...
...
drivers/net/wireless/iwlwifi/iwl-agn.c
View file @
d14a7679
...
...
@@ -2675,12 +2675,10 @@ static ssize_t show_power_level(struct device *d,
struct
device_attribute
*
attr
,
char
*
buf
)
{
struct
iwl_priv
*
priv
=
dev_get_drvdata
(
d
);
int
mode
=
priv
->
power_data
.
user_power_setting
;
int
level
=
priv
->
power_data
.
power_mode
;
char
*
p
=
buf
;
p
+=
sprintf
(
p
,
"INDEX:%d
\t
"
,
level
);
p
+=
sprintf
(
p
,
"USER:%d
\n
"
,
mode
);
p
+=
sprintf
(
p
,
"%d
\n
"
,
level
);
return
p
-
buf
+
1
;
}
...
...
drivers/net/wireless/iwlwifi/iwl-tx.c
View file @
d14a7679
...
...
@@ -872,7 +872,8 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
iwl_print_hex_dump
(
priv
,
IWL_DL_TX
,
(
u8
*
)
tx_cmd
->
hdr
,
hdr_len
);
/* Set up entry for this TFD in Tx byte-count array */
priv
->
cfg
->
ops
->
lib
->
txq_update_byte_cnt_tbl
(
priv
,
txq
,
if
(
info
->
flags
&
IEEE80211_TX_CTL_AMPDU
)
priv
->
cfg
->
ops
->
lib
->
txq_update_byte_cnt_tbl
(
priv
,
txq
,
le16_to_cpu
(
tx_cmd
->
len
));
pci_dma_sync_single_for_device
(
priv
->
pci_dev
,
txcmd_phys
,
...
...
drivers/net/wireless/iwlwifi/iwl3945-base.c
View file @
d14a7679
...
...
@@ -3643,12 +3643,10 @@ static ssize_t show_power_level(struct device *d,
struct
device_attribute
*
attr
,
char
*
buf
)
{
struct
iwl_priv
*
priv
=
dev_get_drvdata
(
d
);
int
mode
=
priv
->
power_data
.
user_power_setting
;
int
level
=
priv
->
power_data
.
power_mode
;
char
*
p
=
buf
;
p
+=
sprintf
(
p
,
"INDEX:%d
\t
"
,
level
);
p
+=
sprintf
(
p
,
"USER:%d
\n
"
,
mode
);
p
+=
sprintf
(
p
,
"%d
\n
"
,
level
);
return
p
-
buf
+
1
;
}
...
...
drivers/net/wireless/iwmc3200wifi/netdev.c
View file @
d14a7679
...
...
@@ -151,8 +151,8 @@ void iwm_if_free(struct iwm_priv *iwm)
return
;
free_netdev
(
iwm_to_ndev
(
iwm
));
iwm_wdev_free
(
iwm
);
iwm_priv_deinit
(
iwm
);
iwm_wdev_free
(
iwm
);
}
int
iwm_if_add
(
struct
iwm_priv
*
iwm
)
...
...
drivers/net/wireless/libertas/cmd.c
View file @
d14a7679
...
...
@@ -135,8 +135,14 @@ int lbs_update_hw_spec(struct lbs_private *priv)
/* Clamp region code to 8-bit since FW spec indicates that it should
* only ever be 8-bit, even though the field size is 16-bit. Some firmware
* returns non-zero high 8 bits here.
*
* Firmware version 4.0.102 used in CF8381 has region code shifted. We
* need to check for this problem and handle it properly.
*/
priv
->
regioncode
=
le16_to_cpu
(
cmd
.
regioncode
)
&
0xFF
;
if
(
MRVL_FW_MAJOR_REV
(
priv
->
fwrelease
)
==
MRVL_FW_V4
)
priv
->
regioncode
=
(
le16_to_cpu
(
cmd
.
regioncode
)
>>
8
)
&
0xFF
;
else
priv
->
regioncode
=
le16_to_cpu
(
cmd
.
regioncode
)
&
0xFF
;
for
(
i
=
0
;
i
<
MRVDRV_MAX_REGION_CODE
;
i
++
)
{
/* use the region code to search for the index */
...
...
drivers/net/wireless/libertas/defs.h
View file @
d14a7679
...
...
@@ -234,6 +234,8 @@ static inline void lbs_deb_hex(unsigned int grp, const char *prompt, u8 *buf, in
/** Mesh enable bit in FW capability */
#define MESH_CAPINFO_ENABLE_MASK (1<<16)
/** FW definition from Marvell v4 */
#define MRVL_FW_V4 (0x04)
/** FW definition from Marvell v5 */
#define MRVL_FW_V5 (0x05)
/** FW definition from Marvell v10 */
...
...
drivers/net/wireless/mac80211_hwsim.c
View file @
d14a7679
...
...
@@ -709,7 +709,7 @@ static const struct ieee80211_ops mac80211_hwsim_ops =
static
void
mac80211_hwsim_free
(
void
)
{
struct
list_head
tmplist
,
*
i
,
*
tmp
;
struct
mac80211_hwsim_data
*
data
;
struct
mac80211_hwsim_data
*
data
,
*
tmpdata
;
INIT_LIST_HEAD
(
&
tmplist
);
...
...
@@ -718,7 +718,7 @@ static void mac80211_hwsim_free(void)
list_move
(
i
,
&
tmplist
);
spin_unlock_bh
(
&
hwsim_radio_lock
);
list_for_each_entry
(
data
,
&
tmplist
,
list
)
{
list_for_each_entry
_safe
(
data
,
tmp
data
,
&
tmplist
,
list
)
{
debugfs_remove
(
data
->
debugfs_group
);
debugfs_remove
(
data
->
debugfs_ps
);
debugfs_remove
(
data
->
debugfs
);
...
...
@@ -1167,8 +1167,8 @@ static void __exit exit_mac80211_hwsim(void)
{
printk
(
KERN_DEBUG
"mac80211_hwsim: unregister radios
\n
"
);
unregister_netdev
(
hwsim_mon
);
mac80211_hwsim_free
();
unregister_netdev
(
hwsim_mon
);
}
...
...
drivers/net/wireless/p54/p54spi.c
View file @
d14a7679
...
...
@@ -635,7 +635,7 @@ static int __devinit p54spi_probe(struct spi_device *spi)
hw
=
p54_init_common
(
sizeof
(
*
priv
));
if
(
!
hw
)
{
dev_err
(
&
priv
->
spi
->
dev
,
"could not alloc ieee80211_hw"
);
dev_err
(
&
spi
->
dev
,
"could not alloc ieee80211_hw"
);
return
-
ENOMEM
;
}
...
...
drivers/net/wireless/rt2x00/rt2500usb.c
View file @
d14a7679
...
...
@@ -1550,7 +1550,9 @@ static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
rt2500usb_register_read
(
rt2x00dev
,
MAC_CSR0
,
&
reg
);
rt2x00_set_chip
(
rt2x00dev
,
RT2570
,
value
,
reg
);
if
(
!
rt2x00_check_rev
(
&
rt2x00dev
->
chip
,
0x000ffff0
,
0
))
{
if
(
!
rt2x00_check_rev
(
&
rt2x00dev
->
chip
,
0x000ffff0
,
0
)
||
rt2x00_check_rev
(
&
rt2x00dev
->
chip
,
0x0000000f
,
0
))
{
ERROR
(
rt2x00dev
,
"Invalid RT chipset detected.
\n
"
);
return
-
ENODEV
;
}
...
...
drivers/net/wireless/rtl818x/rtl8187_leds.c
View file @
d14a7679
...
...
@@ -208,11 +208,12 @@ void rtl8187_leds_exit(struct ieee80211_hw *dev)
{
struct
rtl8187_priv
*
priv
=
dev
->
priv
;
rtl8187_unregister_led
(
&
priv
->
led_tx
);
/* turn the LED off before exiting */
queue_delayed_work
(
dev
->
workqueue
,
&
priv
->
led_off
,
0
);
cancel_delayed_work_sync
(
&
priv
->
led_off
);
cancel_delayed_work_sync
(
&
priv
->
led_on
);
rtl8187_unregister_led
(
&
priv
->
led_rx
);
rtl8187_unregister_led
(
&
priv
->
led_tx
);
}
#endif
/* def CONFIG_RTL8187_LED */
drivers/platform/x86/acer-wmi.c
View file @
d14a7679
...
...
@@ -973,7 +973,7 @@ static int acer_rfkill_set(void *data, bool blocked)
{
acpi_status
status
;
u32
cap
=
(
unsigned
long
)
data
;
status
=
set_u32
(
!
!
blocked
,
cap
);
status
=
set_u32
(
!
blocked
,
cap
);
if
(
ACPI_FAILURE
(
status
))
return
-
ENODEV
;
return
0
;
...
...
include/linux/rfkill.h
View file @
d14a7679
...
...
@@ -224,7 +224,7 @@ void rfkill_destroy(struct rfkill *rfkill);
* should be blocked) so that drivers need not keep track of the soft
* block state -- which they might not be able to.
*/
bool
__must_check
rfkill_set_hw_state
(
struct
rfkill
*
rfkill
,
bool
blocked
);
bool
rfkill_set_hw_state
(
struct
rfkill
*
rfkill
,
bool
blocked
);
/**
* rfkill_set_sw_state - Set the internal rfkill software block state
...
...
net/mac80211/Kconfig
View file @
d14a7679
...
...
@@ -83,6 +83,7 @@ endmenu
config MAC80211_MESH
bool "Enable mac80211 mesh networking (pre-802.11s) support"
depends on MAC80211 && EXPERIMENTAL
depends on BROKEN
---help---
This options enables support of Draft 802.11s mesh networking.
The implementation is based on Draft 1.08 of the Mesh Networking
...
...
net/mac80211/mesh_pathtbl.c
View file @
d14a7679
...
...
@@ -175,6 +175,8 @@ int mesh_path_add(u8 *dst, struct ieee80211_sub_if_data *sdata)
int
err
=
0
;
u32
hash_idx
;
might_sleep
();
if
(
memcmp
(
dst
,
sdata
->
dev
->
dev_addr
,
ETH_ALEN
)
==
0
)
/* never add ourselves as neighbours */
return
-
ENOTSUPP
;
...
...
@@ -265,6 +267,7 @@ int mpp_path_add(u8 *dst, u8 *mpp, struct ieee80211_sub_if_data *sdata)
int
err
=
0
;
u32
hash_idx
;
might_sleep
();
if
(
memcmp
(
dst
,
sdata
->
dev
->
dev_addr
,
ETH_ALEN
)
==
0
)
/* never add ourselves as neighbours */
...
...
@@ -491,8 +494,10 @@ void mesh_path_tx_pending(struct mesh_path *mpath)
* @skb: frame to discard
* @sdata: network subif the frame was to be sent through
*
* If the frame was beign forwarded from another MP, a PERR frame will be sent
* to the precursor.
* If the frame was being forwarded from another MP, a PERR frame will be sent
* to the precursor. The precursor's address (i.e. the previous hop) was saved
* in addr1 of the frame-to-be-forwarded, and would only be overwritten once
* the destination is successfully resolved.
*
* Locking: the function must me called within a rcu_read_lock region
*/
...
...
@@ -507,7 +512,7 @@ void mesh_path_discard_frame(struct sk_buff *skb,
u8
*
ra
,
*
da
;
da
=
hdr
->
addr3
;
ra
=
hdr
->
addr
2
;
ra
=
hdr
->
addr
1
;
mpath
=
mesh_path_lookup
(
da
,
sdata
);
if
(
mpath
)
dsn
=
++
mpath
->
dsn
;
...
...
net/mac80211/tx.c
View file @
d14a7679
...
...
@@ -1455,7 +1455,7 @@ int ieee80211_master_start_xmit(struct sk_buff *skb, struct net_device *dev)
monitor_iface
=
UNKNOWN_ADDRESS
;
len_rthdr
=
ieee80211_get_radiotap_len
(
skb
->
data
);
hdr
=
(
struct
ieee80211_hdr
*
)
skb
->
data
+
len_rthdr
;
hdr
=
(
struct
ieee80211_hdr
*
)
(
skb
->
data
+
len_rthdr
)
;
hdrlen
=
ieee80211_hdrlen
(
hdr
->
frame_control
);
/* check the header is complete in the frame */
...
...
net/rfkill/core.c
View file @
d14a7679
...
...
@@ -549,6 +549,10 @@ void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
swprev
=
!!
(
rfkill
->
state
&
RFKILL_BLOCK_SW
);
hwprev
=
!!
(
rfkill
->
state
&
RFKILL_BLOCK_HW
);
__rfkill_set_sw_state
(
rfkill
,
sw
);
if
(
hw
)
rfkill
->
state
|=
RFKILL_BLOCK_HW
;
else
rfkill
->
state
&=
~
RFKILL_BLOCK_HW
;
spin_unlock_irqrestore
(
&
rfkill
->
lock
,
flags
);
...
...
@@ -648,15 +652,26 @@ static ssize_t rfkill_state_store(struct device *dev,
struct
device_attribute
*
attr
,
const
char
*
buf
,
size_t
count
)
{
/*
* The intention was that userspace can only take control over
* a given device when/if rfkill-input doesn't control it due
* to user_claim. Since user_claim is currently unsupported,
* we never support changing the state from userspace -- this
* can be implemented again later.
*/
struct
rfkill
*
rfkill
=
to_rfkill
(
dev
);
unsigned
long
state
;
int
err
;
if
(
!
capable
(
CAP_NET_ADMIN
))
return
-
EPERM
;
err
=
strict_strtoul
(
buf
,
0
,
&
state
);
if
(
err
)
return
err
;
if
(
state
!=
RFKILL_USER_STATE_SOFT_BLOCKED
&&
state
!=
RFKILL_USER_STATE_UNBLOCKED
)
return
-
EINVAL
;
mutex_lock
(
&
rfkill_global_mutex
);
rfkill_set_block
(
rfkill
,
state
==
RFKILL_USER_STATE_SOFT_BLOCKED
);
mutex_unlock
(
&
rfkill_global_mutex
);
return
-
EPERM
;
return
err
?:
count
;
}
static
ssize_t
rfkill_claim_show
(
struct
device
*
dev
,
...
...
net/wireless/nl80211.c
View file @
d14a7679
...
...
@@ -997,7 +997,7 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
if
(
IS_ERR
(
hdr
))
{
err
=
PTR_ERR
(
hdr
);
goto
out
;
goto
free_msg
;
}
cookie
.
msg
=
msg
;
...
...
@@ -1011,7 +1011,7 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
&
cookie
,
get_key_callback
);
if
(
err
)
goto
out
;
goto
free_msg
;
if
(
cookie
.
error
)
goto
nla_put_failure
;
...
...
@@ -1022,6 +1022,7 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
nla_put_failure:
err
=
-
ENOBUFS
;
free_msg:
nlmsg_free
(
msg
);
out:
cfg80211_put_dev
(
drv
);
...
...
net/wireless/scan.c
View file @
d14a7679
...
...
@@ -35,8 +35,6 @@ void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted)
else
nl80211_send_scan_done
(
wiphy_to_dev
(
request
->
wiphy
),
dev
);
wiphy_to_dev
(
request
->
wiphy
)
->
scan_req
=
NULL
;
#ifdef CONFIG_WIRELESS_EXT
if
(
!
aborted
)
{
memset
(
&
wrqu
,
0
,
sizeof
(
wrqu
));
...
...
@@ -48,6 +46,7 @@ void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted)
dev_put
(
dev
);
out:
wiphy_to_dev
(
request
->
wiphy
)
->
scan_req
=
NULL
;
kfree
(
request
);
}
EXPORT_SYMBOL
(
cfg80211_scan_done
);
...
...
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