Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Linux-御风守护者
linux
提交
f7f65d1e
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,发现更多精彩内容 >>
提交
f7f65d1e
编写于
11月 20, 2008
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
eafdcb43
4018517a
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
23 addition
and
58 deletion
+23
-58
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.c
+3
-4
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-dev.h
+2
-1
drivers/net/wireless/iwlwifi/iwl-rx.c
drivers/net/wireless/iwlwifi/iwl-rx.c
+17
-9
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
+0
-1
drivers/net/wireless/libertas_tf/if_usb.c
drivers/net/wireless/libertas_tf/if_usb.c
+1
-1
include/net/mac80211.h
include/net/mac80211.h
+0
-20
net/mac80211/mlme.c
net/mac80211/mlme.c
+0
-22
未找到文件。
drivers/net/wireless/iwlwifi/iwl-agn.c
浏览文件 @
f7f65d1e
...
...
@@ -1384,7 +1384,7 @@ void iwl_rx_handle(struct iwl_priv *priv)
rxq
->
queue
[
i
]
=
NULL
;
pci_dma_sync_single_for_cpu
(
priv
->
pci_dev
,
rxb
->
dma_addr
,
pci_dma_sync_single_for_cpu
(
priv
->
pci_dev
,
rxb
->
aligned_
dma_addr
,
priv
->
hw_params
.
rx_buf_size
,
PCI_DMA_FROMDEVICE
);
pkt
=
(
struct
iwl_rx_packet
*
)
rxb
->
skb
->
data
;
...
...
@@ -1436,8 +1436,8 @@ void iwl_rx_handle(struct iwl_priv *priv)
rxb
->
skb
=
NULL
;
}
pci_unmap_single
(
priv
->
pci_dev
,
rxb
->
dma_addr
,
priv
->
hw_params
.
rx_buf_size
,
pci_unmap_single
(
priv
->
pci_dev
,
rxb
->
real_
dma_addr
,
priv
->
hw_params
.
rx_buf_size
+
256
,
PCI_DMA_FROMDEVICE
);
spin_lock_irqsave
(
&
rxq
->
lock
,
flags
);
list_add_tail
(
&
rxb
->
list
,
&
priv
->
rxq
.
rx_used
);
...
...
@@ -2341,7 +2341,6 @@ static void iwl_bg_alive_start(struct work_struct *data)
mutex_lock
(
&
priv
->
mutex
);
iwl_alive_start
(
priv
);
mutex_unlock
(
&
priv
->
mutex
);
ieee80211_notify_mac
(
priv
->
hw
,
IEEE80211_NOTIFY_RE_ASSOC
);
}
static
void
iwl4965_bg_rf_kill
(
struct
work_struct
*
work
)
...
...
drivers/net/wireless/iwlwifi/iwl-dev.h
浏览文件 @
f7f65d1e
...
...
@@ -89,7 +89,8 @@ extern struct iwl_cfg iwl5100_abg_cfg;
#define DEFAULT_LONG_RETRY_LIMIT 4U
struct
iwl_rx_mem_buffer
{
dma_addr_t
dma_addr
;
dma_addr_t
real_dma_addr
;
dma_addr_t
aligned_dma_addr
;
struct
sk_buff
*
skb
;
struct
list_head
list
;
};
...
...
drivers/net/wireless/iwlwifi/iwl-rx.c
浏览文件 @
f7f65d1e
...
...
@@ -204,7 +204,7 @@ int iwl_rx_queue_restock(struct iwl_priv *priv)
list_del
(
element
);
/* Point to Rx buffer via next RBD in circular buffer */
rxq
->
bd
[
rxq
->
write
]
=
iwl_dma_addr2rbd_ptr
(
priv
,
rxb
->
dma_addr
);
rxq
->
bd
[
rxq
->
write
]
=
iwl_dma_addr2rbd_ptr
(
priv
,
rxb
->
aligned_
dma_addr
);
rxq
->
queue
[
rxq
->
write
]
=
rxb
;
rxq
->
write
=
(
rxq
->
write
+
1
)
&
RX_QUEUE_MASK
;
rxq
->
free_count
--
;
...
...
@@ -251,7 +251,7 @@ void iwl_rx_allocate(struct iwl_priv *priv)
rxb
=
list_entry
(
element
,
struct
iwl_rx_mem_buffer
,
list
);
/* Alloc a new receive buffer */
rxb
->
skb
=
alloc_skb
(
priv
->
hw_params
.
rx_buf_size
,
rxb
->
skb
=
alloc_skb
(
priv
->
hw_params
.
rx_buf_size
+
256
,
__GFP_NOWARN
|
GFP_ATOMIC
);
if
(
!
rxb
->
skb
)
{
if
(
net_ratelimit
())
...
...
@@ -266,9 +266,17 @@ void iwl_rx_allocate(struct iwl_priv *priv)
list_del
(
element
);
/* Get physical address of RB/SKB */
rxb
->
dma_addr
=
pci_map_single
(
priv
->
pci_dev
,
rxb
->
skb
->
data
,
priv
->
hw_params
.
rx_buf_size
,
PCI_DMA_FROMDEVICE
);
rxb
->
real_dma_addr
=
pci_map_single
(
priv
->
pci_dev
,
rxb
->
skb
->
data
,
priv
->
hw_params
.
rx_buf_size
+
256
,
PCI_DMA_FROMDEVICE
);
/* dma address must be no more than 36 bits */
BUG_ON
(
rxb
->
real_dma_addr
&
~
DMA_BIT_MASK
(
36
));
/* and also 256 byte aligned! */
rxb
->
aligned_dma_addr
=
ALIGN
(
rxb
->
real_dma_addr
,
256
);
skb_reserve
(
rxb
->
skb
,
rxb
->
aligned_dma_addr
-
rxb
->
real_dma_addr
);
list_add_tail
(
&
rxb
->
list
,
&
rxq
->
rx_free
);
rxq
->
free_count
++
;
}
...
...
@@ -300,8 +308,8 @@ void iwl_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
for
(
i
=
0
;
i
<
RX_QUEUE_SIZE
+
RX_FREE_BUFFERS
;
i
++
)
{
if
(
rxq
->
pool
[
i
].
skb
!=
NULL
)
{
pci_unmap_single
(
priv
->
pci_dev
,
rxq
->
pool
[
i
].
dma_addr
,
priv
->
hw_params
.
rx_buf_size
,
rxq
->
pool
[
i
].
real_
dma_addr
,
priv
->
hw_params
.
rx_buf_size
+
256
,
PCI_DMA_FROMDEVICE
);
dev_kfree_skb
(
rxq
->
pool
[
i
].
skb
);
}
...
...
@@ -354,8 +362,8 @@ void iwl_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
* to an SKB, so we need to unmap and free potential storage */
if
(
rxq
->
pool
[
i
].
skb
!=
NULL
)
{
pci_unmap_single
(
priv
->
pci_dev
,
rxq
->
pool
[
i
].
dma_addr
,
priv
->
hw_params
.
rx_buf_size
,
rxq
->
pool
[
i
].
real_
dma_addr
,
priv
->
hw_params
.
rx_buf_size
+
256
,
PCI_DMA_FROMDEVICE
);
priv
->
alloc_rxb_skb
--
;
dev_kfree_skb
(
rxq
->
pool
[
i
].
skb
);
...
...
drivers/net/wireless/iwlwifi/iwl3945-base.c
浏览文件 @
f7f65d1e
...
...
@@ -6012,7 +6012,6 @@ static void iwl3945_bg_alive_start(struct work_struct *data)
mutex_lock
(
&
priv
->
mutex
);
iwl3945_alive_start
(
priv
);
mutex_unlock
(
&
priv
->
mutex
);
ieee80211_notify_mac
(
priv
->
hw
,
IEEE80211_NOTIFY_RE_ASSOC
);
}
static
void
iwl3945_bg_rf_kill
(
struct
work_struct
*
work
)
...
...
drivers/net/wireless/libertas_tf/if_usb.c
浏览文件 @
f7f65d1e
...
...
@@ -331,7 +331,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
),
skb_tail_pointer
(
skb
),
MRVDRV_ETH_RX_PACKET_BUFFER_SIZE
,
callbackfn
,
cardp
);
cardp
->
rx_urb
->
transfer_flags
|=
URB_ZERO_PACKET
;
...
...
include/net/mac80211.h
浏览文件 @
f7f65d1e
...
...
@@ -73,14 +73,6 @@
* not do so then mac80211 may add this under certain circumstances.
*/
/**
* enum ieee80211_notification_type - Low level driver notification
* @IEEE80211_NOTIFY_RE_ASSOC: start the re-association sequence
*/
enum
ieee80211_notification_types
{
IEEE80211_NOTIFY_RE_ASSOC
,
};
/**
* struct ieee80211_ht_bss_info - describing BSS's HT characteristics
*
...
...
@@ -1797,18 +1789,6 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_hw *hw, u8 *ra, u8 tid);
void
ieee80211_stop_tx_ba_cb_irqsafe
(
struct
ieee80211_hw
*
hw
,
const
u8
*
ra
,
u16
tid
);
/**
* ieee80211_notify_mac - low level driver notification
* @hw: pointer as obtained from ieee80211_alloc_hw().
* @notif_type: enum ieee80211_notification_types
*
* This function must be called by low level driver to inform mac80211 of
* low level driver status change or force mac80211 to re-assoc for low
* level driver internal error that require re-assoc.
*/
void
ieee80211_notify_mac
(
struct
ieee80211_hw
*
hw
,
enum
ieee80211_notification_types
notif_type
);
/**
* ieee80211_find_sta - find a station
*
...
...
net/mac80211/mlme.c
浏览文件 @
f7f65d1e
...
...
@@ -2560,25 +2560,3 @@ void ieee80211_mlme_notify_scan_completed(struct ieee80211_local *local)
ieee80211_restart_sta_timer
(
sdata
);
rcu_read_unlock
();
}
/* driver notification call */
void
ieee80211_notify_mac
(
struct
ieee80211_hw
*
hw
,
enum
ieee80211_notification_types
notif_type
)
{
struct
ieee80211_local
*
local
=
hw_to_local
(
hw
);
struct
ieee80211_sub_if_data
*
sdata
;
switch
(
notif_type
)
{
case
IEEE80211_NOTIFY_RE_ASSOC
:
rtnl_lock
();
list_for_each_entry
(
sdata
,
&
local
->
interfaces
,
list
)
{
if
(
sdata
->
vif
.
type
!=
NL80211_IFTYPE_STATION
)
continue
;
ieee80211_sta_req_auth
(
sdata
,
&
sdata
->
u
.
sta
);
}
rtnl_unlock
();
break
;
}
}
EXPORT_SYMBOL
(
ieee80211_notify_mac
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录