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
6c36810a
Commit
6c36810a
authored
Aug 27, 2008
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'no-iwlwifi' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
parents
df694712
576fdeae
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
80 additions
and
81 deletions
+80
-81
drivers/net/wireless/ath5k/base.c
drivers/net/wireless/ath5k/base.c
+17
-6
drivers/net/wireless/ath5k/base.h
drivers/net/wireless/ath5k/base.h
+1
-0
drivers/net/wireless/atmel.c
drivers/net/wireless/atmel.c
+31
-20
net/mac80211/debugfs_netdev.c
net/mac80211/debugfs_netdev.c
+12
-12
net/mac80211/ieee80211_i.h
net/mac80211/ieee80211_i.h
+6
-0
net/mac80211/mesh.c
net/mac80211/mesh.c
+1
-1
net/mac80211/mlme.c
net/mac80211/mlme.c
+11
-41
net/rfkill/rfkill.c
net/rfkill/rfkill.c
+1
-1
No files found.
drivers/net/wireless/ath5k/base.c
View file @
6c36810a
...
...
@@ -251,7 +251,7 @@ static inline void ath5k_txbuf_free(struct ath5k_softc *sc,
return
;
pci_unmap_single
(
sc
->
pdev
,
bf
->
skbaddr
,
bf
->
skb
->
len
,
PCI_DMA_TODEVICE
);
dev_kfree_skb
(
bf
->
skb
);
dev_kfree_skb
_any
(
bf
->
skb
);
bf
->
skb
=
NULL
;
}
...
...
@@ -466,6 +466,7 @@ ath5k_pci_probe(struct pci_dev *pdev,
mutex_init
(
&
sc
->
lock
);
spin_lock_init
(
&
sc
->
rxbuflock
);
spin_lock_init
(
&
sc
->
txbuflock
);
spin_lock_init
(
&
sc
->
block
);
/* Set private data */
pci_set_drvdata
(
pdev
,
hw
);
...
...
@@ -2179,8 +2180,11 @@ ath5k_beacon_config(struct ath5k_softc *sc)
sc
->
imask
|=
AR5K_INT_SWBA
;
if
(
ath5k_hw_hasveol
(
ah
))
if
(
ath5k_hw_hasveol
(
ah
))
{
spin_lock
(
&
sc
->
block
);
ath5k_beacon_send
(
sc
);
spin_unlock
(
&
sc
->
block
);
}
}
/* TODO else AP */
...
...
@@ -2403,7 +2407,9 @@ ath5k_intr(int irq, void *dev_id)
TSF_TO_TU
(
tsf
),
(
unsigned
long
long
)
tsf
);
}
else
{
spin_lock
(
&
sc
->
block
);
ath5k_beacon_send
(
sc
);
spin_unlock
(
&
sc
->
block
);
}
}
if
(
status
&
AR5K_INT_RXEOL
)
{
...
...
@@ -2745,6 +2751,11 @@ static int ath5k_add_interface(struct ieee80211_hw *hw,
ret
=
-
EOPNOTSUPP
;
goto
end
;
}
/* Set to a reasonable value. Note that this will
* be set to mac80211's value at ath5k_config(). */
sc
->
bintval
=
1000
;
ret
=
0
;
end:
mutex_unlock
(
&
sc
->
lock
);
...
...
@@ -2789,9 +2800,6 @@ ath5k_config_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct
ath5k_hw
*
ah
=
sc
->
ah
;
int
ret
;
/* Set to a reasonable value. Note that this will
* be set to mac80211's value at ath5k_config(). */
sc
->
bintval
=
1000
;
mutex_lock
(
&
sc
->
lock
);
if
(
sc
->
vif
!=
vif
)
{
ret
=
-
EIO
;
...
...
@@ -3050,6 +3058,7 @@ static int
ath5k_beacon_update
(
struct
ieee80211_hw
*
hw
,
struct
sk_buff
*
skb
)
{
struct
ath5k_softc
*
sc
=
hw
->
priv
;
unsigned
long
flags
;
int
ret
;
ath5k_debug_dump_skb
(
sc
,
skb
,
"BC "
,
1
);
...
...
@@ -3059,12 +3068,14 @@ ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
goto
end
;
}
spin_lock_irqsave
(
&
sc
->
block
,
flags
);
ath5k_txbuf_free
(
sc
,
sc
->
bbuf
);
sc
->
bbuf
->
skb
=
skb
;
ret
=
ath5k_beacon_setup
(
sc
,
sc
->
bbuf
);
if
(
ret
)
sc
->
bbuf
->
skb
=
NULL
;
else
{
spin_unlock_irqrestore
(
&
sc
->
block
,
flags
);
if
(
!
ret
)
{
ath5k_beacon_config
(
sc
);
mmiowb
();
}
...
...
drivers/net/wireless/ath5k/base.h
View file @
6c36810a
...
...
@@ -172,6 +172,7 @@ struct ath5k_softc {
struct
tasklet_struct
txtq
;
/* tx intr tasklet */
struct
ath5k_led
tx_led
;
/* tx led */
spinlock_t
block
;
/* protects beacon */
struct
ath5k_buf
*
bbuf
;
/* beacon buffer */
unsigned
int
bhalq
,
/* SW q for outgoing beacons */
bmisscount
,
/* missed beacon transmits */
...
...
drivers/net/wireless/atmel.c
View file @
6c36810a
...
...
@@ -1304,7 +1304,7 @@ EXPORT_SYMBOL(atmel_open);
int
atmel_open
(
struct
net_device
*
dev
)
{
struct
atmel_private
*
priv
=
netdev_priv
(
dev
);
int
i
,
channel
;
int
i
,
channel
,
err
;
/* any scheduled timer is no longer needed and might screw things up.. */
del_timer_sync
(
&
priv
->
management_timer
);
...
...
@@ -1328,8 +1328,9 @@ int atmel_open(struct net_device *dev)
priv
->
site_survey_state
=
SITE_SURVEY_IDLE
;
priv
->
station_is_associated
=
0
;
if
(
!
reset_atmel_card
(
dev
))
return
-
EAGAIN
;
err
=
reset_atmel_card
(
dev
);
if
(
err
)
return
err
;
if
(
priv
->
config_reg_domain
)
{
priv
->
reg_domain
=
priv
->
config_reg_domain
;
...
...
@@ -3061,12 +3062,20 @@ static void authenticate(struct atmel_private *priv, u16 frame_len)
}
if
(
status
==
WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG
)
{
/* Do opensystem first, then try sharedkey */
/* Flip back and forth between WEP auth modes until the max
* authentication tries has been exceeded.
*/
if
(
system
==
WLAN_AUTH_OPEN
)
{
priv
->
CurrentAuthentTransactionSeqNum
=
0x001
;
priv
->
exclude_unencrypted
=
1
;
send_authentication_request
(
priv
,
WLAN_AUTH_SHARED_KEY
,
NULL
,
0
);
return
;
}
else
if
(
system
==
WLAN_AUTH_SHARED_KEY
&&
priv
->
wep_is_on
)
{
priv
->
CurrentAuthentTransactionSeqNum
=
0x001
;
priv
->
exclude_unencrypted
=
0
;
send_authentication_request
(
priv
,
WLAN_AUTH_OPEN
,
NULL
,
0
);
return
;
}
else
if
(
priv
->
connect_to_any_BSS
)
{
int
bss_index
;
...
...
@@ -3580,12 +3589,12 @@ static int atmel_wakeup_firmware(struct atmel_private *priv)
if
(
i
==
0
)
{
printk
(
KERN_ALERT
"%s: MAC failed to boot.
\n
"
,
priv
->
dev
->
name
);
return
0
;
return
-
EIO
;
}
if
((
priv
->
host_info_base
=
atmel_read16
(
priv
->
dev
,
MR2
))
==
0xffff
)
{
printk
(
KERN_ALERT
"%s: card missing.
\n
"
,
priv
->
dev
->
name
);
return
0
;
return
-
ENODEV
;
}
/* now check for completion of MAC initialization through
...
...
@@ -3609,19 +3618,19 @@ static int atmel_wakeup_firmware(struct atmel_private *priv)
if
(
i
==
0
)
{
printk
(
KERN_ALERT
"%s: MAC failed to initialise.
\n
"
,
priv
->
dev
->
name
);
return
0
;
return
-
EIO
;
}
/* Check for MAC_INIT_OK only on the register that the MAC_INIT_OK was set */
if
((
mr3
&
MAC_INIT_COMPLETE
)
&&
!
(
atmel_read16
(
priv
->
dev
,
MR3
)
&
MAC_INIT_OK
))
{
printk
(
KERN_ALERT
"%s: MAC failed MR3 self-test.
\n
"
,
priv
->
dev
->
name
);
return
0
;
return
-
EIO
;
}
if
((
mr1
&
MAC_INIT_COMPLETE
)
&&
!
(
atmel_read16
(
priv
->
dev
,
MR1
)
&
MAC_INIT_OK
))
{
printk
(
KERN_ALERT
"%s: MAC failed MR1 self-test.
\n
"
,
priv
->
dev
->
name
);
return
0
;
return
-
EIO
;
}
atmel_copy_to_host
(
priv
->
dev
,
(
unsigned
char
*
)
iface
,
...
...
@@ -3642,7 +3651,7 @@ static int atmel_wakeup_firmware(struct atmel_private *priv)
iface
->
func_ctrl
=
le16_to_cpu
(
iface
->
func_ctrl
);
iface
->
mac_status
=
le16_to_cpu
(
iface
->
mac_status
);
return
1
;
return
0
;
}
/* determine type of memory and MAC address */
...
...
@@ -3693,7 +3702,7 @@ static int probe_atmel_card(struct net_device *dev)
/* Standard firmware in flash, boot it up and ask
for the Mac Address */
priv
->
card_type
=
CARD_TYPE_SPI_FLASH
;
if
(
atmel_wakeup_firmware
(
priv
))
{
if
(
atmel_wakeup_firmware
(
priv
)
==
0
)
{
atmel_get_mib
(
priv
,
Mac_Address_Mib_Type
,
0
,
dev
->
dev_addr
,
6
);
/* got address, now squash it again until the network
...
...
@@ -3835,6 +3844,7 @@ static int reset_atmel_card(struct net_device *dev)
struct
atmel_private
*
priv
=
netdev_priv
(
dev
);
u8
configuration
;
int
old_state
=
priv
->
station_state
;
int
err
=
0
;
/* data to add to the firmware names, in priority order
this implemenents firmware versioning */
...
...
@@ -3868,11 +3878,12 @@ static int reset_atmel_card(struct net_device *dev)
dev
->
name
);
strcpy
(
priv
->
firmware_id
,
"atmel_at76c502.bin"
);
}
if
(
request_firmware
(
&
fw_entry
,
priv
->
firmware_id
,
priv
->
sys_dev
)
!=
0
)
{
err
=
request_firmware
(
&
fw_entry
,
priv
->
firmware_id
,
priv
->
sys_dev
);
if
(
err
!=
0
)
{
printk
(
KERN_ALERT
"%s: firmware %s is missing, cannot continue.
\n
"
,
dev
->
name
,
priv
->
firmware_id
);
return
0
;
return
err
;
}
}
else
{
int
fw_index
=
0
;
...
...
@@ -3901,7 +3912,7 @@ static int reset_atmel_card(struct net_device *dev)
"%s: firmware %s is missing, cannot start.
\n
"
,
dev
->
name
,
priv
->
firmware_id
);
priv
->
firmware_id
[
0
]
=
'\0'
;
return
0
;
return
-
ENOENT
;
}
}
...
...
@@ -3926,8 +3937,9 @@ static int reset_atmel_card(struct net_device *dev)
release_firmware
(
fw_entry
);
}
if
(
!
atmel_wakeup_firmware
(
priv
))
return
0
;
err
=
atmel_wakeup_firmware
(
priv
);
if
(
err
!=
0
)
return
err
;
/* Check the version and set the correct flag for wpa stuff,
old and new firmware is incompatible.
...
...
@@ -3968,10 +3980,9 @@ static int reset_atmel_card(struct net_device *dev)
if
(
!
priv
->
radio_on_broken
)
{
if
(
atmel_send_command_wait
(
priv
,
CMD_EnableRadio
,
NULL
,
0
)
==
CMD_STATUS_REJECTED_RADIO_OFF
)
{
printk
(
KERN_INFO
"%s: cannot turn the radio on. (Hey radio, you're beautiful!)
\n
"
,
printk
(
KERN_INFO
"%s: cannot turn the radio on.
\n
"
,
dev
->
name
);
return
0
;
return
-
EIO
;
}
}
...
...
@@ -4006,7 +4017,7 @@ static int reset_atmel_card(struct net_device *dev)
wireless_send_event
(
priv
->
dev
,
SIOCGIWAP
,
&
wrqu
,
NULL
);
}
return
1
;
return
0
;
}
static
void
atmel_send_command
(
struct
atmel_private
*
priv
,
int
command
,
...
...
net/mac80211/debugfs_netdev.c
View file @
6c36810a
...
...
@@ -248,8 +248,8 @@ IEEE80211_IF_WFILE(min_discovery_timeout,
static
void
add_sta_files
(
struct
ieee80211_sub_if_data
*
sdata
)
{
DEBUGFS_ADD
(
drop_unencrypted
,
sta
);
DEBUGFS_ADD
(
force_unicast_rateidx
,
ap
);
DEBUGFS_ADD
(
max_ratectrl_rateidx
,
ap
);
DEBUGFS_ADD
(
force_unicast_rateidx
,
sta
);
DEBUGFS_ADD
(
max_ratectrl_rateidx
,
sta
);
DEBUGFS_ADD
(
state
,
sta
);
DEBUGFS_ADD
(
bssid
,
sta
);
...
...
@@ -283,8 +283,8 @@ static void add_ap_files(struct ieee80211_sub_if_data *sdata)
static
void
add_wds_files
(
struct
ieee80211_sub_if_data
*
sdata
)
{
DEBUGFS_ADD
(
drop_unencrypted
,
wds
);
DEBUGFS_ADD
(
force_unicast_rateidx
,
ap
);
DEBUGFS_ADD
(
max_ratectrl_rateidx
,
ap
);
DEBUGFS_ADD
(
force_unicast_rateidx
,
wds
);
DEBUGFS_ADD
(
max_ratectrl_rateidx
,
wds
);
DEBUGFS_ADD
(
peer
,
wds
);
}
...
...
@@ -292,8 +292,8 @@ static void add_wds_files(struct ieee80211_sub_if_data *sdata)
static
void
add_vlan_files
(
struct
ieee80211_sub_if_data
*
sdata
)
{
DEBUGFS_ADD
(
drop_unencrypted
,
vlan
);
DEBUGFS_ADD
(
force_unicast_rateidx
,
ap
);
DEBUGFS_ADD
(
max_ratectrl_rateidx
,
ap
);
DEBUGFS_ADD
(
force_unicast_rateidx
,
vlan
);
DEBUGFS_ADD
(
max_ratectrl_rateidx
,
vlan
);
}
static
void
add_monitor_files
(
struct
ieee80211_sub_if_data
*
sdata
)
...
...
@@ -381,8 +381,8 @@ static void add_files(struct ieee80211_sub_if_data *sdata)
static
void
del_sta_files
(
struct
ieee80211_sub_if_data
*
sdata
)
{
DEBUGFS_DEL
(
drop_unencrypted
,
sta
);
DEBUGFS_DEL
(
force_unicast_rateidx
,
ap
);
DEBUGFS_DEL
(
max_ratectrl_rateidx
,
ap
);
DEBUGFS_DEL
(
force_unicast_rateidx
,
sta
);
DEBUGFS_DEL
(
max_ratectrl_rateidx
,
sta
);
DEBUGFS_DEL
(
state
,
sta
);
DEBUGFS_DEL
(
bssid
,
sta
);
...
...
@@ -416,8 +416,8 @@ static void del_ap_files(struct ieee80211_sub_if_data *sdata)
static
void
del_wds_files
(
struct
ieee80211_sub_if_data
*
sdata
)
{
DEBUGFS_DEL
(
drop_unencrypted
,
wds
);
DEBUGFS_DEL
(
force_unicast_rateidx
,
ap
);
DEBUGFS_DEL
(
max_ratectrl_rateidx
,
ap
);
DEBUGFS_DEL
(
force_unicast_rateidx
,
wds
);
DEBUGFS_DEL
(
max_ratectrl_rateidx
,
wds
);
DEBUGFS_DEL
(
peer
,
wds
);
}
...
...
@@ -425,8 +425,8 @@ static void del_wds_files(struct ieee80211_sub_if_data *sdata)
static
void
del_vlan_files
(
struct
ieee80211_sub_if_data
*
sdata
)
{
DEBUGFS_DEL
(
drop_unencrypted
,
vlan
);
DEBUGFS_DEL
(
force_unicast_rateidx
,
ap
);
DEBUGFS_DEL
(
max_ratectrl_rateidx
,
ap
);
DEBUGFS_DEL
(
force_unicast_rateidx
,
vlan
);
DEBUGFS_DEL
(
max_ratectrl_rateidx
,
vlan
);
}
static
void
del_monitor_files
(
struct
ieee80211_sub_if_data
*
sdata
)
...
...
net/mac80211/ieee80211_i.h
View file @
6c36810a
...
...
@@ -470,6 +470,8 @@ struct ieee80211_sub_if_data {
struct
dentry
*
auth_transaction
;
struct
dentry
*
flags
;
struct
dentry
*
num_beacons_sta
;
struct
dentry
*
force_unicast_rateidx
;
struct
dentry
*
max_ratectrl_rateidx
;
}
sta
;
struct
{
struct
dentry
*
drop_unencrypted
;
...
...
@@ -483,9 +485,13 @@ struct ieee80211_sub_if_data {
struct
{
struct
dentry
*
drop_unencrypted
;
struct
dentry
*
peer
;
struct
dentry
*
force_unicast_rateidx
;
struct
dentry
*
max_ratectrl_rateidx
;
}
wds
;
struct
{
struct
dentry
*
drop_unencrypted
;
struct
dentry
*
force_unicast_rateidx
;
struct
dentry
*
max_ratectrl_rateidx
;
}
vlan
;
struct
{
struct
dentry
*
mode
;
...
...
net/mac80211/mesh.c
View file @
6c36810a
...
...
@@ -383,7 +383,7 @@ struct mesh_table *mesh_table_grow(struct mesh_table *tbl)
hlist_for_each_safe
(
p
,
q
,
&
newtbl
->
hash_buckets
[
i
])
tbl
->
free_node
(
p
,
0
);
}
__mesh_table_free
(
tbl
);
__mesh_table_free
(
new
tbl
);
endgrow:
return
NULL
;
}
...
...
net/mac80211/mlme.c
View file @
6c36810a
...
...
@@ -478,51 +478,21 @@ int ieee80211_ht_addt_info_ie_to_ht_bss_info(
static
void
ieee80211_sta_send_associnfo
(
struct
net_device
*
dev
,
struct
ieee80211_if_sta
*
ifsta
)
{
char
*
buf
;
size_t
len
;
int
i
;
union
iwreq_data
wrqu
;
if
(
!
ifsta
->
assocreq_ies
&&
!
ifsta
->
assocresp_ies
)
return
;
buf
=
kmalloc
(
50
+
2
*
(
ifsta
->
assocreq_ies_len
+
ifsta
->
assocresp_ies_len
),
GFP_KERNEL
);
if
(
!
buf
)
return
;
len
=
sprintf
(
buf
,
"ASSOCINFO("
);
if
(
ifsta
->
assocreq_ies
)
{
len
+=
sprintf
(
buf
+
len
,
"ReqIEs="
);
for
(
i
=
0
;
i
<
ifsta
->
assocreq_ies_len
;
i
++
)
{
len
+=
sprintf
(
buf
+
len
,
"%02x"
,
ifsta
->
assocreq_ies
[
i
]);
}
memset
(
&
wrqu
,
0
,
sizeof
(
wrqu
));
wrqu
.
data
.
length
=
ifsta
->
assocreq_ies_len
;
wireless_send_event
(
dev
,
IWEVASSOCREQIE
,
&
wrqu
,
ifsta
->
assocreq_ies
);
}
if
(
ifsta
->
assocresp_ies
)
{
if
(
ifsta
->
assocreq_ies
)
len
+=
sprintf
(
buf
+
len
,
" "
);
len
+=
sprintf
(
buf
+
len
,
"RespIEs="
);
for
(
i
=
0
;
i
<
ifsta
->
assocresp_ies_len
;
i
++
)
{
len
+=
sprintf
(
buf
+
len
,
"%02x"
,
ifsta
->
assocresp_ies
[
i
]);
}
}
len
+=
sprintf
(
buf
+
len
,
")"
);
if
(
len
>
IW_CUSTOM_MAX
)
{
len
=
sprintf
(
buf
,
"ASSOCRESPIE="
);
for
(
i
=
0
;
i
<
ifsta
->
assocresp_ies_len
;
i
++
)
{
len
+=
sprintf
(
buf
+
len
,
"%02x"
,
ifsta
->
assocresp_ies
[
i
]);
}
if
(
ifsta
->
assocresp_ies
)
{
memset
(
&
wrqu
,
0
,
sizeof
(
wrqu
));
wrqu
.
data
.
length
=
ifsta
->
assocresp_ies_len
;
wireless_send_event
(
dev
,
IWEVASSOCRESPIE
,
&
wrqu
,
ifsta
->
assocresp_ies
);
}
memset
(
&
wrqu
,
0
,
sizeof
(
wrqu
));
wrqu
.
data
.
length
=
len
;
wireless_send_event
(
dev
,
IWEVCUSTOM
,
&
wrqu
,
buf
);
kfree
(
buf
);
}
...
...
@@ -813,7 +783,7 @@ static void ieee80211_send_assoc(struct net_device *dev,
}
}
if
(
count
==
8
)
{
if
(
rates_len
>
count
)
{
pos
=
skb_put
(
skb
,
rates_len
-
count
+
2
);
*
pos
++
=
WLAN_EID_EXT_SUPP_RATES
;
*
pos
++
=
rates_len
-
count
;
...
...
@@ -2868,7 +2838,7 @@ static void ieee80211_rx_bss_info(struct net_device *dev,
jiffies
);
#endif
/* CONFIG_MAC80211_IBSS_DEBUG */
if
(
beacon_timestamp
>
rx_timestamp
)
{
#if
n
def CONFIG_MAC80211_IBSS_DEBUG
#ifdef CONFIG_MAC80211_IBSS_DEBUG
printk
(
KERN_DEBUG
"%s: beacon TSF higher than "
"local TSF - IBSS merge with BSSID %s
\n
"
,
dev
->
name
,
print_mac
(
mac
,
mgmt
->
bssid
));
...
...
net/rfkill/rfkill.c
View file @
6c36810a
...
...
@@ -377,7 +377,7 @@ static ssize_t rfkill_claim_show(struct device *dev,
{
struct
rfkill
*
rfkill
=
to_rfkill
(
dev
);
return
sprintf
(
buf
,
"%d"
,
rfkill
->
user_claim
);
return
sprintf
(
buf
,
"%d
\n
"
,
rfkill
->
user_claim
);
}
static
ssize_t
rfkill_claim_store
(
struct
device
*
dev
,
...
...
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