Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Linux-御风守护者
linux
提交
f403ede7
L
linux
项目概览
Linux-御风守护者
/
linux
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f403ede7
编写于
5月 12, 2008
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
5dc474d6
a4278e18
变更
21
隐藏空白更改
内联
并排
Showing
21 changed file
with
133 addition
and
79 deletion
+133
-79
drivers/net/ps3_gelic_wireless.c
drivers/net/ps3_gelic_wireless.c
+2
-0
drivers/net/wireless/iwlwifi/iwl-3945.c
drivers/net/wireless/iwlwifi/iwl-3945.c
+1
-1
drivers/net/wireless/iwlwifi/iwl-4965-rs.c
drivers/net/wireless/iwlwifi/iwl-4965-rs.c
+1
-1
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl-4965.c
+1
-1
drivers/net/wireless/prism54/islpci_dev.c
drivers/net/wireless/prism54/islpci_dev.c
+9
-2
drivers/net/wireless/rt2x00/rt2x00dev.c
drivers/net/wireless/rt2x00/rt2x00dev.c
+4
-7
drivers/net/wireless/rt2x00/rt2x00pci.c
drivers/net/wireless/rt2x00/rt2x00pci.c
+3
-2
drivers/net/wireless/rt2x00/rt61pci.c
drivers/net/wireless/rt2x00/rt61pci.c
+11
-20
drivers/net/wireless/wavelan.c
drivers/net/wireless/wavelan.c
+2
-2
drivers/net/wireless/wavelan_cs.c
drivers/net/wireless/wavelan_cs.c
+2
-4
drivers/net/wireless/zd1211rw/zd_usb.c
drivers/net/wireless/zd1211rw/zd_usb.c
+5
-1
net/mac80211/debugfs_key.c
net/mac80211/debugfs_key.c
+12
-3
net/mac80211/mesh.c
net/mac80211/mesh.c
+1
-1
net/mac80211/mesh_hwmp.c
net/mac80211/mesh_hwmp.c
+1
-1
net/mac80211/mesh_pathtbl.c
net/mac80211/mesh_pathtbl.c
+12
-5
net/mac80211/mlme.c
net/mac80211/mlme.c
+50
-14
net/mac80211/rc80211_pid_debugfs.c
net/mac80211/rc80211_pid_debugfs.c
+2
-2
net/mac80211/rx.c
net/mac80211/rx.c
+6
-6
net/mac80211/tx.c
net/mac80211/tx.c
+1
-0
net/mac80211/util.c
net/mac80211/util.c
+5
-5
net/mac80211/wme.c
net/mac80211/wme.c
+2
-1
未找到文件。
drivers/net/ps3_gelic_wireless.c
浏览文件 @
f403ede7
...
...
@@ -2474,6 +2474,8 @@ static void gelic_wl_free(struct gelic_wl_info *wl)
pr_debug
(
"%s: <-
\n
"
,
__func__
);
free_page
((
unsigned
long
)
wl
->
buf
);
pr_debug
(
"%s: destroy queues
\n
"
,
__func__
);
destroy_workqueue
(
wl
->
eurus_cmd_queue
);
destroy_workqueue
(
wl
->
event_queue
);
...
...
drivers/net/wireless/iwlwifi/iwl-3945.c
浏览文件 @
f403ede7
...
...
@@ -666,7 +666,7 @@ static void iwl3945_rx_reply_rx(struct iwl3945_priv *priv,
rx_status
.
flag
=
0
;
rx_status
.
mactime
=
le64_to_cpu
(
rx_end
->
timestamp
);
rx_status
.
freq
=
ieee80211_
frequency_to_channel
(
le16_to_cpu
(
rx_hdr
->
channel
));
ieee80211_
channel_to_frequency
(
le16_to_cpu
(
rx_hdr
->
channel
));
rx_status
.
band
=
(
rx_hdr
->
phy_flags
&
RX_RES_PHY_FLAGS_BAND_24_MSK
)
?
IEEE80211_BAND_2GHZ
:
IEEE80211_BAND_5GHZ
;
...
...
drivers/net/wireless/iwlwifi/iwl-4965-rs.c
浏览文件 @
f403ede7
...
...
@@ -163,8 +163,8 @@ struct iwl4965_lq_sta {
struct
dentry
*
rs_sta_dbgfs_tx_agg_tid_en_file
;
#endif
struct
iwl4965_rate
dbg_fixed
;
struct
iwl_priv
*
drv
;
#endif
struct
iwl_priv
*
drv
;
};
static
void
rs_rate_scale_perform
(
struct
iwl_priv
*
priv
,
...
...
drivers/net/wireless/iwlwifi/iwl-4965.c
浏览文件 @
f403ede7
...
...
@@ -3978,7 +3978,7 @@ static void iwl4965_rx_reply_rx(struct iwl_priv *priv,
rx_status
.
mactime
=
le64_to_cpu
(
rx_start
->
timestamp
);
rx_status
.
freq
=
ieee80211_
frequency_to_channel
(
le16_to_cpu
(
rx_start
->
channel
));
ieee80211_
channel_to_frequency
(
le16_to_cpu
(
rx_start
->
channel
));
rx_status
.
band
=
(
rx_start
->
phy_flags
&
RX_RES_PHY_FLAGS_BAND_24_MSK
)
?
IEEE80211_BAND_2GHZ
:
IEEE80211_BAND_5GHZ
;
rx_status
.
rate_idx
=
...
...
drivers/net/wireless/prism54/islpci_dev.c
浏览文件 @
f403ede7
...
...
@@ -388,8 +388,15 @@ islpci_open(struct net_device *ndev)
netif_start_queue
(
ndev
);
/* Turn off carrier unless we know we have associated */
netif_carrier_off
(
ndev
);
/* Turn off carrier if in STA or Ad-hoc mode. It will be turned on
* once the firmware receives a trap of being associated
* (GEN_OID_LINKSTATE). In other modes (AP or WDS or monitor) we
* should just leave the carrier on as its expected the firmware
* won't send us a trigger. */
if
(
priv
->
iw_mode
==
IW_MODE_INFRA
||
priv
->
iw_mode
==
IW_MODE_ADHOC
)
netif_carrier_off
(
ndev
);
else
netif_carrier_on
(
ndev
);
return
0
;
}
...
...
drivers/net/wireless/rt2x00/rt2x00dev.c
浏览文件 @
f403ede7
...
...
@@ -1032,8 +1032,10 @@ static int rt2x00lib_initialize(struct rt2x00_dev *rt2x00dev)
* Initialize the device.
*/
status
=
rt2x00dev
->
ops
->
lib
->
initialize
(
rt2x00dev
);
if
(
status
)
goto
exit
;
if
(
status
)
{
rt2x00queue_uninitialize
(
rt2x00dev
);
return
status
;
}
__set_bit
(
DEVICE_INITIALIZED
,
&
rt2x00dev
->
flags
);
...
...
@@ -1043,11 +1045,6 @@ static int rt2x00lib_initialize(struct rt2x00_dev *rt2x00dev)
rt2x00rfkill_register
(
rt2x00dev
);
return
0
;
exit:
rt2x00lib_uninitialize
(
rt2x00dev
);
return
status
;
}
int
rt2x00lib_start
(
struct
rt2x00_dev
*
rt2x00dev
)
...
...
drivers/net/wireless/rt2x00/rt2x00pci.c
浏览文件 @
f403ede7
...
...
@@ -314,13 +314,14 @@ int rt2x00pci_initialize(struct rt2x00_dev *rt2x00dev)
if
(
status
)
{
ERROR
(
rt2x00dev
,
"IRQ %d allocation failed (error %d).
\n
"
,
pci_dev
->
irq
,
status
);
return
status
;
goto
exit
;
}
return
0
;
exit:
rt2x00pci_uninitialize
(
rt2x00dev
);
queue_for_each
(
rt2x00dev
,
queue
)
rt2x00pci_free_queue_dma
(
rt2x00dev
,
queue
);
return
status
;
}
...
...
drivers/net/wireless/rt2x00/rt61pci.c
浏览文件 @
f403ede7
...
...
@@ -2366,6 +2366,7 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb,
{
struct
rt2x00_dev
*
rt2x00dev
=
hw
->
priv
;
struct
rt2x00_intf
*
intf
=
vif_to_intf
(
control
->
vif
);
struct
queue_entry_priv_pci_tx
*
priv_tx
;
struct
skb_frame_desc
*
skbdesc
;
unsigned
int
beacon_base
;
u32
reg
;
...
...
@@ -2373,21 +2374,8 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb,
if
(
unlikely
(
!
intf
->
beacon
))
return
-
ENOBUFS
;
/*
* We need to append the descriptor in front of the
* beacon frame.
*/
if
(
skb_headroom
(
skb
)
<
intf
->
beacon
->
queue
->
desc_size
)
{
if
(
pskb_expand_head
(
skb
,
intf
->
beacon
->
queue
->
desc_size
,
0
,
GFP_ATOMIC
))
return
-
ENOMEM
;
}
/*
* Add the descriptor in front of the skb.
*/
skb_push
(
skb
,
intf
->
beacon
->
queue
->
desc_size
);
memset
(
skb
->
data
,
0
,
intf
->
beacon
->
queue
->
desc_size
);
priv_tx
=
intf
->
beacon
->
priv_data
;
memset
(
priv_tx
->
desc
,
0
,
intf
->
beacon
->
queue
->
desc_size
);
/*
* Fill in skb descriptor
...
...
@@ -2395,9 +2383,9 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb,
skbdesc
=
get_skb_frame_desc
(
skb
);
memset
(
skbdesc
,
0
,
sizeof
(
*
skbdesc
));
skbdesc
->
flags
|=
FRAME_DESC_DRIVER_GENERATED
;
skbdesc
->
data
=
skb
->
data
+
intf
->
beacon
->
queue
->
desc_size
;
skbdesc
->
data_len
=
skb
->
len
-
intf
->
beacon
->
queue
->
desc_size
;
skbdesc
->
desc
=
skb
->
data
;
skbdesc
->
data
=
skb
->
data
;
skbdesc
->
data_len
=
skb
->
len
;
skbdesc
->
desc
=
priv_tx
->
desc
;
skbdesc
->
desc_len
=
intf
->
beacon
->
queue
->
desc_size
;
skbdesc
->
entry
=
intf
->
beacon
;
...
...
@@ -2425,7 +2413,10 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb,
*/
beacon_base
=
HW_BEACON_OFFSET
(
intf
->
beacon
->
entry_idx
);
rt2x00pci_register_multiwrite
(
rt2x00dev
,
beacon_base
,
skb
->
data
,
skb
->
len
);
skbdesc
->
desc
,
skbdesc
->
desc_len
);
rt2x00pci_register_multiwrite
(
rt2x00dev
,
beacon_base
+
skbdesc
->
desc_len
,
skbdesc
->
data
,
skbdesc
->
data_len
);
rt61pci_kick_tx_queue
(
rt2x00dev
,
control
->
queue
);
return
0
;
...
...
@@ -2490,7 +2481,7 @@ static const struct data_queue_desc rt61pci_queue_tx = {
static
const
struct
data_queue_desc
rt61pci_queue_bcn
=
{
.
entry_num
=
4
*
BEACON_ENTRIES
,
.
data_size
=
MGMT_FRAME_SIZE
,
.
data_size
=
0
,
/* No DMA required for beacons */
.
desc_size
=
TXINFO_SIZE
,
.
priv_size
=
sizeof
(
struct
queue_entry_priv_pci_tx
),
};
...
...
drivers/net/wireless/wavelan.c
浏览文件 @
f403ede7
...
...
@@ -908,9 +908,9 @@ static void wv_psa_show(psa_t * p)
p
->
psa_call_code
[
3
],
p
->
psa_call_code
[
4
],
p
->
psa_call_code
[
5
],
p
->
psa_call_code
[
6
],
p
->
psa_call_code
[
7
]);
#ifdef DEBUG_SHOW_UNUSED
printk
(
KERN_DEBUG
"psa_reserved[]: %02X:%02X
:%02X:%02X
\n
"
,
printk
(
KERN_DEBUG
"psa_reserved[]: %02X:%02X
\n
"
,
p
->
psa_reserved
[
0
],
p
->
psa_reserved
[
1
]
,
p
->
psa_reserved
[
2
],
p
->
psa_reserved
[
3
]
);
p
->
psa_reserved
[
1
]);
#endif
/* DEBUG_SHOW_UNUSED */
printk
(
KERN_DEBUG
"psa_conf_status: %d, "
,
p
->
psa_conf_status
);
printk
(
"psa_crc: 0x%02x%02x, "
,
p
->
psa_crc
[
0
],
p
->
psa_crc
[
1
]);
...
...
drivers/net/wireless/wavelan_cs.c
浏览文件 @
f403ede7
...
...
@@ -1074,11 +1074,9 @@ wv_psa_show(psa_t * p)
p
->
psa_call_code
[
6
],
p
->
psa_call_code
[
7
]);
#ifdef DEBUG_SHOW_UNUSED
printk
(
KERN_DEBUG
"psa_reserved[]: %02X:%02X
:%02X:%02X
\n
"
,
printk
(
KERN_DEBUG
"psa_reserved[]: %02X:%02X
\n
"
,
p
->
psa_reserved
[
0
],
p
->
psa_reserved
[
1
],
p
->
psa_reserved
[
2
],
p
->
psa_reserved
[
3
]);
p
->
psa_reserved
[
1
]);
#endif
/* DEBUG_SHOW_UNUSED */
printk
(
KERN_DEBUG
"psa_conf_status: %d, "
,
p
->
psa_conf_status
);
printk
(
"psa_crc: 0x%02x%02x, "
,
p
->
psa_crc
[
0
],
p
->
psa_crc
[
1
]);
...
...
drivers/net/wireless/zd1211rw/zd_usb.c
浏览文件 @
f403ede7
...
...
@@ -889,9 +889,13 @@ static void tx_urb_complete(struct urb *urb)
}
free_urb:
skb
=
(
struct
sk_buff
*
)
urb
->
context
;
zd_mac_tx_to_dev
(
skb
,
urb
->
status
);
/*
* grab 'usb' pointer before handing off the skb (since
* it might be freed by zd_mac_tx_to_dev or mac80211)
*/
cb
=
(
struct
zd_tx_skb_control_block
*
)
skb
->
cb
;
usb
=
&
zd_hw_mac
(
cb
->
hw
)
->
chip
.
usb
;
zd_mac_tx_to_dev
(
skb
,
urb
->
status
);
free_tx_urb
(
usb
,
urb
);
tx_dec_submitted_urbs
(
usb
);
return
;
...
...
net/mac80211/debugfs_key.c
浏览文件 @
f403ede7
...
...
@@ -255,14 +255,23 @@ void ieee80211_debugfs_key_remove(struct ieee80211_key *key)
void
ieee80211_debugfs_key_add_default
(
struct
ieee80211_sub_if_data
*
sdata
)
{
char
buf
[
50
];
struct
ieee80211_key
*
key
;
if
(
!
sdata
->
debugfsdir
)
return
;
sprintf
(
buf
,
"../keys/%d"
,
sdata
->
default_key
->
debugfs
.
cnt
);
sdata
->
debugfs
.
default_key
=
debugfs_create_symlink
(
"default_key"
,
sdata
->
debugfsdir
,
buf
);
/* this is running under the key lock */
key
=
sdata
->
default_key
;
if
(
key
)
{
sprintf
(
buf
,
"../keys/%d"
,
key
->
debugfs
.
cnt
);
sdata
->
debugfs
.
default_key
=
debugfs_create_symlink
(
"default_key"
,
sdata
->
debugfsdir
,
buf
);
}
else
ieee80211_debugfs_key_remove_default
(
sdata
);
}
void
ieee80211_debugfs_key_remove_default
(
struct
ieee80211_sub_if_data
*
sdata
)
{
if
(
!
sdata
)
...
...
net/mac80211/mesh.c
浏览文件 @
f403ede7
...
...
@@ -397,7 +397,7 @@ int ieee80211_new_mesh_header(struct ieee80211s_hdr *meshhdr,
put_unaligned
(
cpu_to_le32
(
sdata
->
u
.
sta
.
mesh_seqnum
),
&
meshhdr
->
seqnum
);
sdata
->
u
.
sta
.
mesh_seqnum
++
;
return
5
;
return
6
;
}
void
ieee80211_mesh_init_sdata
(
struct
ieee80211_sub_if_data
*
sdata
)
...
...
net/mac80211/mesh_hwmp.c
浏览文件 @
f403ede7
...
...
@@ -120,7 +120,7 @@ static int mesh_path_sel_frame_tx(enum mpath_frame_type action, u8 flags,
*
pos
++
=
WLAN_EID_PREP
;
break
;
default:
kfree
(
skb
);
kfree
_skb
(
skb
);
return
-
ENOTSUPP
;
break
;
}
...
...
net/mac80211/mesh_pathtbl.c
浏览文件 @
f403ede7
...
...
@@ -158,19 +158,25 @@ int mesh_path_add(u8 *dst, struct net_device *dev)
if
(
atomic_add_unless
(
&
sdata
->
u
.
sta
.
mpaths
,
1
,
MESH_MAX_MPATHS
)
==
0
)
return
-
ENOSPC
;
read_lock
(
&
pathtbl_resize_lock
);
new_mpath
=
kzalloc
(
sizeof
(
struct
mesh_path
),
GFP_KERNEL
);
if
(
!
new_mpath
)
{
atomic_dec
(
&
sdata
->
u
.
sta
.
mpaths
);
err
=
-
ENOMEM
;
goto
endadd2
;
}
new_node
=
kmalloc
(
sizeof
(
struct
mpath_node
),
GFP_KERNEL
);
if
(
!
new_node
)
{
kfree
(
new_mpath
);
atomic_dec
(
&
sdata
->
u
.
sta
.
mpaths
);
err
=
-
ENOMEM
;
goto
endadd2
;
}
read_lock
(
&
pathtbl_resize_lock
);
memcpy
(
new_mpath
->
dst
,
dst
,
ETH_ALEN
);
new_mpath
->
dev
=
dev
;
new_mpath
->
flags
=
0
;
skb_queue_head_init
(
&
new_mpath
->
frame_queue
);
new_node
=
kmalloc
(
sizeof
(
struct
mpath_node
),
GFP_KERNEL
);
new_node
->
mpath
=
new_mpath
;
new_mpath
->
timer
.
data
=
(
unsigned
long
)
new_mpath
;
new_mpath
->
timer
.
function
=
mesh_path_timer
;
...
...
@@ -202,7 +208,6 @@ int mesh_path_add(u8 *dst, struct net_device *dev)
endadd:
spin_unlock
(
&
mesh_paths
->
hashwlock
[
hash_idx
]);
endadd2:
read_unlock
(
&
pathtbl_resize_lock
);
if
(
!
err
&&
grow
)
{
struct
mesh_table
*
oldtbl
,
*
newtbl
;
...
...
@@ -215,10 +220,12 @@ int mesh_path_add(u8 *dst, struct net_device *dev)
return
-
ENOMEM
;
}
rcu_assign_pointer
(
mesh_paths
,
newtbl
);
write_unlock
(
&
pathtbl_resize_lock
);
synchronize_rcu
();
mesh_table_free
(
oldtbl
,
false
);
write_unlock
(
&
pathtbl_resize_lock
);
}
endadd2:
return
err
;
}
...
...
net/mac80211/mlme.c
浏览文件 @
f403ede7
...
...
@@ -665,6 +665,26 @@ static void ieee80211_authenticate(struct net_device *dev,
mod_timer
(
&
ifsta
->
timer
,
jiffies
+
IEEE80211_AUTH_TIMEOUT
);
}
static
int
ieee80211_compatible_rates
(
struct
ieee80211_sta_bss
*
bss
,
struct
ieee80211_supported_band
*
sband
,
u64
*
rates
)
{
int
i
,
j
,
count
;
*
rates
=
0
;
count
=
0
;
for
(
i
=
0
;
i
<
bss
->
supp_rates_len
;
i
++
)
{
int
rate
=
(
bss
->
supp_rates
[
i
]
&
0x7F
)
*
5
;
for
(
j
=
0
;
j
<
sband
->
n_bitrates
;
j
++
)
if
(
sband
->
bitrates
[
j
].
bitrate
==
rate
)
{
*
rates
|=
BIT
(
j
);
count
++
;
break
;
}
}
return
count
;
}
static
void
ieee80211_send_assoc
(
struct
net_device
*
dev
,
struct
ieee80211_if_sta
*
ifsta
)
...
...
@@ -673,11 +693,12 @@ static void ieee80211_send_assoc(struct net_device *dev,
struct
sk_buff
*
skb
;
struct
ieee80211_mgmt
*
mgmt
;
u8
*
pos
,
*
ies
;
int
i
,
len
;
int
i
,
len
,
count
,
rates_len
,
supp_rates_len
;
u16
capab
;
struct
ieee80211_sta_bss
*
bss
;
int
wmm
=
0
;
struct
ieee80211_supported_band
*
sband
;
u64
rates
=
0
;
skb
=
dev_alloc_skb
(
local
->
hw
.
extra_tx_headroom
+
sizeof
(
*
mgmt
)
+
200
+
ifsta
->
extra_ie_len
+
...
...
@@ -740,24 +761,39 @@ static void ieee80211_send_assoc(struct net_device *dev,
*
pos
++
=
ifsta
->
ssid_len
;
memcpy
(
pos
,
ifsta
->
ssid
,
ifsta
->
ssid_len
);
/* all supported rates should be added here but some APs
* (e.g. D-Link DAP 1353 in b-only mode) don't like that
* Therefore only add rates the AP supports */
rates_len
=
ieee80211_compatible_rates
(
bss
,
sband
,
&
rates
);
supp_rates_len
=
rates_len
;
if
(
supp_rates_len
>
8
)
supp_rates_len
=
8
;
len
=
sband
->
n_bitrates
;
if
(
len
>
8
)
len
=
8
;
pos
=
skb_put
(
skb
,
len
+
2
);
pos
=
skb_put
(
skb
,
supp_rates_len
+
2
);
*
pos
++
=
WLAN_EID_SUPP_RATES
;
*
pos
++
=
len
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
int
rate
=
sband
->
bitrates
[
i
].
bitrate
;
*
pos
++
=
(
u8
)
(
rate
/
5
);
}
*
pos
++
=
supp_rates_len
;
if
(
sband
->
n_bitrates
>
len
)
{
pos
=
skb_put
(
skb
,
sband
->
n_bitrates
-
len
+
2
);
*
pos
++
=
WLAN_EID_EXT_SUPP_RATES
;
*
pos
++
=
sband
->
n_bitrates
-
len
;
for
(
i
=
len
;
i
<
sband
->
n_bitrates
;
i
++
)
{
count
=
0
;
for
(
i
=
0
;
i
<
sband
->
n_bitrates
;
i
++
)
{
if
(
BIT
(
i
)
&
rates
)
{
int
rate
=
sband
->
bitrates
[
i
].
bitrate
;
*
pos
++
=
(
u8
)
(
rate
/
5
);
if
(
++
count
==
8
)
break
;
}
}
if
(
count
==
8
)
{
pos
=
skb_put
(
skb
,
rates_len
-
count
+
2
);
*
pos
++
=
WLAN_EID_EXT_SUPP_RATES
;
*
pos
++
=
rates_len
-
count
;
for
(
i
++
;
i
<
sband
->
n_bitrates
;
i
++
)
{
if
(
BIT
(
i
)
&
rates
)
{
int
rate
=
sband
->
bitrates
[
i
].
bitrate
;
*
pos
++
=
(
u8
)
(
rate
/
5
);
}
}
}
...
...
net/mac80211/rc80211_pid_debugfs.c
浏览文件 @
f403ede7
...
...
@@ -85,7 +85,7 @@ static int rate_control_pid_events_open(struct inode *inode, struct file *file)
struct
rc_pid_sta_info
*
sinfo
=
inode
->
i_private
;
struct
rc_pid_event_buffer
*
events
=
&
sinfo
->
events
;
struct
rc_pid_events_file_info
*
file_info
;
unsigned
int
status
;
unsigned
long
status
;
/* Allocate a state struct */
file_info
=
kmalloc
(
sizeof
(
*
file_info
),
GFP_KERNEL
);
...
...
@@ -135,7 +135,7 @@ static ssize_t rate_control_pid_events_read(struct file *file, char __user *buf,
char
pb
[
RC_PID_PRINT_BUF_SIZE
];
int
ret
;
int
p
;
unsigned
int
status
;
unsigned
long
status
;
/* Check if there is something to read. */
if
(
events
->
next_entry
==
file_info
->
next_entry
)
{
...
...
net/mac80211/rx.c
浏览文件 @
f403ede7
...
...
@@ -1305,11 +1305,11 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
if
(
is_multicast_ether_addr
(
skb
->
data
))
{
if
(
*
mesh_ttl
>
0
)
{
xmit_skb
=
skb_copy
(
skb
,
GFP_ATOMIC
);
if
(
!
xmit_skb
&&
net_ratelimit
())
if
(
xmit_skb
)
xmit_skb
->
pkt_type
=
PACKET_OTHERHOST
;
else
if
(
net_ratelimit
())
printk
(
KERN_DEBUG
"%s: failed to clone "
"multicast frame
\n
"
,
dev
->
name
);
else
xmit_skb
->
pkt_type
=
PACKET_OTHERHOST
;
}
else
IEEE80211_IFSTA_MESH_CTR_INC
(
&
sdata
->
u
.
sta
,
dropped_frames_ttl
);
...
...
@@ -1395,7 +1395,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx)
padding
=
((
4
-
subframe_len
)
&
0x3
);
/* the last MSDU has no padding */
if
(
subframe_len
>
remaining
)
{
printk
(
KERN_DEBUG
"%s: wrong buffer size"
,
dev
->
name
);
printk
(
KERN_DEBUG
"%s: wrong buffer size
\n
"
,
dev
->
name
);
return
RX_DROP_UNUSABLE
;
}
...
...
@@ -1418,7 +1418,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx)
eth
=
(
struct
ethhdr
*
)
skb_pull
(
skb
,
ntohs
(
len
)
+
padding
);
if
(
!
eth
)
{
printk
(
KERN_DEBUG
"%s: wrong buffer size
"
,
printk
(
KERN_DEBUG
"%s: wrong buffer size
\n
"
,
dev
->
name
);
dev_kfree_skb
(
frame
);
return
RX_DROP_UNUSABLE
;
...
...
@@ -1952,7 +1952,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
if
(
!
skb_new
)
{
if
(
net_ratelimit
())
printk
(
KERN_DEBUG
"%s: failed to copy "
"multicast frame for %s"
,
"multicast frame for %s
\n
"
,
wiphy_name
(
local
->
hw
.
wiphy
),
prev
->
dev
->
name
);
continue
;
...
...
net/mac80211/tx.c
浏览文件 @
f403ede7
...
...
@@ -1898,6 +1898,7 @@ struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw,
control
->
flags
|=
IEEE80211_TXCTL_SHORT_PREAMBLE
;
control
->
antenna_sel_tx
=
local
->
hw
.
conf
.
antenna_sel_tx
;
control
->
flags
|=
IEEE80211_TXCTL_NO_ACK
;
control
->
flags
|=
IEEE80211_TXCTL_DO_NOT_ENCRYPT
;
control
->
retry_limit
=
1
;
control
->
flags
|=
IEEE80211_TXCTL_CLEAR_PS_FILT
;
}
...
...
net/mac80211/util.c
浏览文件 @
f403ede7
...
...
@@ -153,15 +153,15 @@ int ieee80211_get_mesh_hdrlen(struct ieee80211s_hdr *meshhdr)
/* 7.1.3.5a.2 */
switch
(
ae
)
{
case
0
:
return
5
;
return
6
;
case
1
:
return
1
1
;
return
1
2
;
case
2
:
return
1
7
;
return
1
8
;
case
3
:
return
2
3
;
return
2
4
;
default:
return
5
;
return
6
;
}
}
...
...
net/mac80211/wme.c
浏览文件 @
f403ede7
...
...
@@ -394,7 +394,8 @@ static int wme_qdiscop_init(struct Qdisc *qd, struct nlattr *opt)
qd
->
handle
);
if
(
!
q
->
queues
[
i
])
{
q
->
queues
[
i
]
=
&
noop_qdisc
;
printk
(
KERN_ERR
"%s child qdisc %i creation failed"
,
dev
->
name
,
i
);
printk
(
KERN_ERR
"%s child qdisc %i creation failed
\n
"
,
dev
->
name
,
i
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录