Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
bcfe3c20
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
bcfe3c20
编写于
11月 02, 2009
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
2e9526b3
c1f9a764
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
61 addition
and
25 deletion
+61
-25
drivers/net/wireless/ath/ath9k/rc.c
drivers/net/wireless/ath/ath9k/rc.c
+1
-1
drivers/net/wireless/b43/dma.c
drivers/net/wireless/b43/dma.c
+13
-2
drivers/net/wireless/ipw2x00/ipw2100.c
drivers/net/wireless/ipw2x00/ipw2100.c
+4
-1
drivers/net/wireless/ipw2x00/ipw2200.c
drivers/net/wireless/ipw2x00/ipw2200.c
+2
-0
drivers/net/wireless/ipw2x00/libipw.h
drivers/net/wireless/ipw2x00/libipw.h
+1
-0
drivers/net/wireless/ipw2x00/libipw_module.c
drivers/net/wireless/ipw2x00/libipw_module.c
+9
-5
drivers/net/wireless/libertas/if_usb.c
drivers/net/wireless/libertas/if_usb.c
+1
-1
drivers/net/wireless/rt2x00/rt73usb.c
drivers/net/wireless/rt2x00/rt73usb.c
+5
-0
net/mac80211/agg-tx.c
net/mac80211/agg-tx.c
+12
-7
net/mac80211/cfg.c
net/mac80211/cfg.c
+3
-3
net/mac80211/ht.c
net/mac80211/ht.c
+1
-1
net/mac80211/ibss.c
net/mac80211/ibss.c
+4
-2
net/wireless/sme.c
net/wireless/sme.c
+5
-2
未找到文件。
drivers/net/wireless/ath/ath9k/rc.c
浏览文件 @
bcfe3c20
...
...
@@ -679,7 +679,7 @@ static u8 ath_rc_get_highest_rix(struct ath_softc *sc,
return
rate
;
if
(
rate_table
->
info
[
rate
].
valid_single_stream
&&
!
(
ath_rc_priv
->
ht_cap
&
WLAN_RC_DS_FLAG
))
;
!
(
ath_rc_priv
->
ht_cap
&
WLAN_RC_DS_FLAG
))
return
rate
;
/* This should not happen */
...
...
drivers/net/wireless/b43/dma.c
浏览文件 @
bcfe3c20
...
...
@@ -1157,8 +1157,9 @@ struct b43_dmaring *parse_cookie(struct b43_wldev *dev, u16 cookie, int *slot)
}
static
int
dma_tx_fragment
(
struct
b43_dmaring
*
ring
,
struct
sk_buff
*
skb
)
struct
sk_buff
*
*
in_
skb
)
{
struct
sk_buff
*
skb
=
*
in_skb
;
const
struct
b43_dma_ops
*
ops
=
ring
->
ops
;
struct
ieee80211_tx_info
*
info
=
IEEE80211_SKB_CB
(
skb
);
u8
*
header
;
...
...
@@ -1224,8 +1225,14 @@ static int dma_tx_fragment(struct b43_dmaring *ring,
}
memcpy
(
skb_put
(
bounce_skb
,
skb
->
len
),
skb
->
data
,
skb
->
len
);
memcpy
(
bounce_skb
->
cb
,
skb
->
cb
,
sizeof
(
skb
->
cb
));
bounce_skb
->
dev
=
skb
->
dev
;
skb_set_queue_mapping
(
bounce_skb
,
skb_get_queue_mapping
(
skb
));
info
=
IEEE80211_SKB_CB
(
bounce_skb
);
dev_kfree_skb_any
(
skb
);
skb
=
bounce_skb
;
*
in_skb
=
bounce_skb
;
meta
->
skb
=
skb
;
meta
->
dmaaddr
=
map_descbuffer
(
ring
,
skb
->
data
,
skb
->
len
,
1
);
if
(
b43_dma_mapping_error
(
ring
,
meta
->
dmaaddr
,
skb
->
len
,
1
))
{
...
...
@@ -1355,7 +1362,11 @@ int b43_dma_tx(struct b43_wldev *dev, struct sk_buff *skb)
* static, so we don't need to store it per frame. */
ring
->
queue_prio
=
skb_get_queue_mapping
(
skb
);
err
=
dma_tx_fragment
(
ring
,
skb
);
/* dma_tx_fragment might reallocate the skb, so invalidate pointers pointing
* into the skb data or cb now. */
hdr
=
NULL
;
info
=
NULL
;
err
=
dma_tx_fragment
(
ring
,
&
skb
);
if
(
unlikely
(
err
==
-
ENOKEY
))
{
/* Drop this packet, as we don't have the encryption key
* anymore and must not transmit it unencrypted. */
...
...
drivers/net/wireless/ipw2x00/ipw2100.c
浏览文件 @
bcfe3c20
...
...
@@ -6325,8 +6325,10 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
fail:
if
(
dev
)
{
if
(
registered
)
if
(
registered
)
{
unregister_ieee80211
(
priv
->
ieee
);
unregister_netdev
(
dev
);
}
ipw2100_hw_stop_adapter
(
priv
);
...
...
@@ -6383,6 +6385,7 @@ static void __devexit ipw2100_pci_remove_one(struct pci_dev *pci_dev)
/* Unregister the device first - this results in close()
* being called if the device is open. If we free storage
* first, then close() will crash. */
unregister_ieee80211
(
priv
->
ieee
);
unregister_netdev
(
dev
);
/* ipw2100_down will ensure that there is no more pending work
...
...
drivers/net/wireless/ipw2x00/ipw2200.c
浏览文件 @
bcfe3c20
...
...
@@ -11821,6 +11821,7 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
if
(
err
)
{
IPW_ERROR
(
"Failed to register promiscuous network "
"device (error %d).
\n
"
,
err
);
unregister_ieee80211
(
priv
->
ieee
);
unregister_netdev
(
priv
->
net_dev
);
goto
out_remove_sysfs
;
}
...
...
@@ -11871,6 +11872,7 @@ static void __devexit ipw_pci_remove(struct pci_dev *pdev)
mutex_unlock
(
&
priv
->
mutex
);
unregister_ieee80211
(
priv
->
ieee
);
unregister_netdev
(
priv
->
net_dev
);
if
(
priv
->
rxq
)
{
...
...
drivers/net/wireless/ipw2x00/libipw.h
浏览文件 @
bcfe3c20
...
...
@@ -1020,6 +1020,7 @@ static inline int libipw_is_cck_rate(u8 rate)
/* ieee80211.c */
extern
void
free_ieee80211
(
struct
net_device
*
dev
,
int
monitor
);
extern
struct
net_device
*
alloc_ieee80211
(
int
sizeof_priv
,
int
monitor
);
extern
void
unregister_ieee80211
(
struct
libipw_device
*
ieee
);
extern
int
libipw_change_mtu
(
struct
net_device
*
dev
,
int
new_mtu
);
extern
void
libipw_networks_age
(
struct
libipw_device
*
ieee
,
...
...
drivers/net/wireless/ipw2x00/libipw_module.c
浏览文件 @
bcfe3c20
...
...
@@ -235,16 +235,19 @@ void free_ieee80211(struct net_device *dev, int monitor)
libipw_networks_free
(
ieee
);
/* free cfg80211 resources */
if
(
!
monitor
)
{
wiphy_unregister
(
ieee
->
wdev
.
wiphy
);
kfree
(
ieee
->
a_band
.
channels
);
kfree
(
ieee
->
bg_band
.
channels
);
if
(
!
monitor
)
wiphy_free
(
ieee
->
wdev
.
wiphy
);
}
free_netdev
(
dev
);
}
void
unregister_ieee80211
(
struct
libipw_device
*
ieee
)
{
wiphy_unregister
(
ieee
->
wdev
.
wiphy
);
kfree
(
ieee
->
a_band
.
channels
);
kfree
(
ieee
->
bg_band
.
channels
);
}
#ifdef CONFIG_LIBIPW_DEBUG
static
int
debug
=
0
;
...
...
@@ -330,3 +333,4 @@ module_init(libipw_init);
EXPORT_SYMBOL
(
alloc_ieee80211
);
EXPORT_SYMBOL
(
free_ieee80211
);
EXPORT_SYMBOL
(
unregister_ieee80211
);
drivers/net/wireless/libertas/if_usb.c
浏览文件 @
bcfe3c20
...
...
@@ -508,7 +508,7 @@ static int __if_usb_submit_rx_urb(struct if_usb_card *cardp,
/* Fill the receive configuration URB and initialise the Rx call back */
usb_fill_bulk_urb
(
cardp
->
rx_urb
,
cardp
->
udev
,
usb_rcvbulkpipe
(
cardp
->
udev
,
cardp
->
ep_in
),
(
void
*
)
(
skb
->
tail
+
(
size_t
)
IPFIELD_ALIGN_OFFSET
)
,
skb
->
data
+
IPFIELD_ALIGN_OFFSET
,
MRVDRV_ETH_RX_PACKET_BUFFER_SIZE
,
callbackfn
,
cardp
);
...
...
drivers/net/wireless/rt2x00/rt73usb.c
浏览文件 @
bcfe3c20
...
...
@@ -2389,10 +2389,13 @@ static struct usb_device_id rt73usb_device_table[] = {
{
USB_DEVICE
(
0x13b1
,
0x0023
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
{
USB_DEVICE
(
0x13b1
,
0x0028
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
/* MSI */
{
USB_DEVICE
(
0x0db0
,
0x4600
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
{
USB_DEVICE
(
0x0db0
,
0x6877
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
{
USB_DEVICE
(
0x0db0
,
0x6874
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
{
USB_DEVICE
(
0x0db0
,
0xa861
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
{
USB_DEVICE
(
0x0db0
,
0xa874
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
/* Ovislink */
{
USB_DEVICE
(
0x1b75
,
0x7318
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
/* Ralink */
{
USB_DEVICE
(
0x04bb
,
0x093d
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
{
USB_DEVICE
(
0x148f
,
0x2573
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
...
...
@@ -2420,6 +2423,8 @@ static struct usb_device_id rt73usb_device_table[] = {
/* Planex */
{
USB_DEVICE
(
0x2019
,
0xab01
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
{
USB_DEVICE
(
0x2019
,
0xab50
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
/* WideTell */
{
USB_DEVICE
(
0x7167
,
0x3840
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
/* Zcom */
{
USB_DEVICE
(
0x0cde
,
0x001c
),
USB_DEVICE_DATA
(
&
rt73usb_ops
)
},
/* ZyXEL */
...
...
net/mac80211/agg-tx.c
浏览文件 @
bcfe3c20
...
...
@@ -666,26 +666,25 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
state
=
&
sta
->
ampdu_mlme
.
tid_state_tx
[
tid
];
del_timer_sync
(
&
sta
->
ampdu_mlme
.
tid_tx
[
tid
]
->
addba_resp_timer
);
spin_lock_bh
(
&
sta
->
lock
);
if
(
!
(
*
state
&
HT_ADDBA_REQUESTED_MSK
))
{
spin_unlock_bh
(
&
sta
->
lock
);
return
;
}
if
(
!
(
*
state
&
HT_ADDBA_REQUESTED_MSK
))
goto
timer_still_needed
;
if
(
mgmt
->
u
.
action
.
u
.
addba_resp
.
dialog_token
!=
sta
->
ampdu_mlme
.
tid_tx
[
tid
]
->
dialog_token
)
{
spin_unlock_bh
(
&
sta
->
lock
);
#ifdef CONFIG_MAC80211_HT_DEBUG
printk
(
KERN_DEBUG
"wrong addBA response token, tid %d
\n
"
,
tid
);
#endif
/* CONFIG_MAC80211_HT_DEBUG */
return
;
goto
timer_still_needed
;
}
del_timer_sync
(
&
sta
->
ampdu_mlme
.
tid_tx
[
tid
]
->
addba_resp_timer
);
#ifdef CONFIG_MAC80211_HT_DEBUG
printk
(
KERN_DEBUG
"switched off addBA timer for tid %d
\n
"
,
tid
);
#endif
/* CONFIG_MAC80211_HT_DEBUG */
if
(
le16_to_cpu
(
mgmt
->
u
.
action
.
u
.
addba_resp
.
status
)
==
WLAN_STATUS_SUCCESS
)
{
u8
curstate
=
*
state
;
...
...
@@ -699,5 +698,11 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
}
else
{
___ieee80211_stop_tx_ba_session
(
sta
,
tid
,
WLAN_BACK_INITIATOR
);
}
goto
out
;
timer_still_needed:
add_timer
(
&
sta
->
ampdu_mlme
.
tid_tx
[
tid
]
->
addba_resp_timer
);
out:
spin_unlock_bh
(
&
sta
->
lock
);
}
net/mac80211/cfg.c
浏览文件 @
bcfe3c20
...
...
@@ -72,6 +72,9 @@ static int ieee80211_change_iface(struct wiphy *wiphy,
struct
ieee80211_sub_if_data
*
sdata
;
int
ret
;
if
(
netif_running
(
dev
))
return
-
EBUSY
;
if
(
!
nl80211_type_check
(
type
))
return
-
EINVAL
;
...
...
@@ -81,9 +84,6 @@ static int ieee80211_change_iface(struct wiphy *wiphy,
if
(
ret
)
return
ret
;
if
(
netif_running
(
sdata
->
dev
))
return
-
EBUSY
;
if
(
ieee80211_vif_is_mesh
(
&
sdata
->
vif
)
&&
params
->
mesh_id_len
)
ieee80211_sdata_set_mesh_id
(
sdata
,
params
->
mesh_id_len
,
...
...
net/mac80211/ht.c
浏览文件 @
bcfe3c20
...
...
@@ -153,7 +153,7 @@ void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata,
if
(
net_ratelimit
())
printk
(
KERN_DEBUG
"delba from %pM (%s) tid %d reason code %d
\n
"
,
mgmt
->
sa
,
initiator
?
"initiator"
:
"recipient"
,
tid
,
mgmt
->
u
.
action
.
u
.
delba
.
reason_code
);
le16_to_cpu
(
mgmt
->
u
.
action
.
u
.
delba
.
reason_code
)
);
#endif
/* CONFIG_MAC80211_HT_DEBUG */
if
(
initiator
==
WLAN_BACK_INITIATOR
)
...
...
net/mac80211/ibss.c
浏览文件 @
bcfe3c20
...
...
@@ -73,6 +73,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
struct
ieee80211_mgmt
*
mgmt
;
u8
*
pos
;
struct
ieee80211_supported_band
*
sband
;
struct
cfg80211_bss
*
bss
;
u32
bss_change
;
u8
supp_rates
[
IEEE80211_MAX_SUPP_RATES
];
...
...
@@ -177,8 +178,9 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
mod_timer
(
&
ifibss
->
timer
,
round_jiffies
(
jiffies
+
IEEE80211_IBSS_MERGE_INTERVAL
));
cfg80211_inform_bss_frame
(
local
->
hw
.
wiphy
,
local
->
hw
.
conf
.
channel
,
mgmt
,
skb
->
len
,
0
,
GFP_KERNEL
);
bss
=
cfg80211_inform_bss_frame
(
local
->
hw
.
wiphy
,
local
->
hw
.
conf
.
channel
,
mgmt
,
skb
->
len
,
0
,
GFP_KERNEL
);
cfg80211_put_bss
(
bss
);
cfg80211_ibss_joined
(
sdata
->
dev
,
ifibss
->
bssid
,
GFP_KERNEL
);
}
...
...
net/wireless/sme.c
浏览文件 @
bcfe3c20
...
...
@@ -165,7 +165,7 @@ void cfg80211_conn_work(struct work_struct *work)
struct
cfg80211_registered_device
*
rdev
=
container_of
(
work
,
struct
cfg80211_registered_device
,
conn_work
);
struct
wireless_dev
*
wdev
;
u8
bssid
[
ETH_ALEN
]
;
u8
bssid
_buf
[
ETH_ALEN
],
*
bssid
=
NULL
;
rtnl_lock
();
cfg80211_lock_rdev
(
rdev
);
...
...
@@ -181,7 +181,10 @@ void cfg80211_conn_work(struct work_struct *work)
wdev_unlock
(
wdev
);
continue
;
}
memcpy
(
bssid
,
wdev
->
conn
->
params
.
bssid
,
ETH_ALEN
);
if
(
wdev
->
conn
->
params
.
bssid
)
{
memcpy
(
bssid_buf
,
wdev
->
conn
->
params
.
bssid
,
ETH_ALEN
);
bssid
=
bssid_buf
;
}
if
(
cfg80211_conn_do_work
(
wdev
))
__cfg80211_connect_result
(
wdev
->
netdev
,
bssid
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录