Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
efa230f2
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
161
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看板
提交
efa230f2
编写于
12月 01, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
niu: Add support for byte queue limits.
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
63ec3c83
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
1 deletion
+11
-1
drivers/net/ethernet/sun/niu.c
drivers/net/ethernet/sun/niu.c
+11
-1
未找到文件。
drivers/net/ethernet/sun/niu.c
浏览文件 @
efa230f2
...
...
@@ -3598,6 +3598,7 @@ static int release_tx_packet(struct niu *np, struct tx_ring_info *rp, int idx)
static
void
niu_tx_work
(
struct
niu
*
np
,
struct
tx_ring_info
*
rp
)
{
struct
netdev_queue
*
txq
;
unsigned
int
tx_bytes
;
u16
pkt_cnt
,
tmp
;
int
cons
,
index
;
u64
cs
;
...
...
@@ -3620,12 +3621,18 @@ static void niu_tx_work(struct niu *np, struct tx_ring_info *rp)
netif_printk
(
np
,
tx_done
,
KERN_DEBUG
,
np
->
dev
,
"%s() pkt_cnt[%u] cons[%d]
\n
"
,
__func__
,
pkt_cnt
,
cons
);
while
(
pkt_cnt
--
)
tx_bytes
=
0
;
tmp
=
pkt_cnt
;
while
(
tmp
--
)
{
tx_bytes
+=
rp
->
tx_buffs
[
cons
].
skb
->
len
;
cons
=
release_tx_packet
(
np
,
rp
,
cons
);
}
rp
->
cons
=
cons
;
smp_mb
();
netdev_tx_completed_queue
(
txq
,
pkt_cnt
,
tx_bytes
);
out:
if
(
unlikely
(
netif_tx_queue_stopped
(
txq
)
&&
(
niu_tx_avail
(
rp
)
>
NIU_TX_WAKEUP_THRESH
(
rp
))))
{
...
...
@@ -4326,6 +4333,7 @@ static void niu_free_channels(struct niu *np)
struct
tx_ring_info
*
rp
=
&
np
->
tx_rings
[
i
];
niu_free_tx_ring_info
(
np
,
rp
);
netdev_tx_reset_queue
(
netdev_get_tx_queue
(
np
->
dev
,
i
));
}
kfree
(
np
->
tx_rings
);
np
->
tx_rings
=
NULL
;
...
...
@@ -6731,6 +6739,8 @@ static netdev_tx_t niu_start_xmit(struct sk_buff *skb,
prod
=
NEXT_TX
(
rp
,
prod
);
}
netdev_tx_sent_queue
(
txq
,
skb
->
len
);
if
(
prod
<
rp
->
prod
)
rp
->
wrap_bit
^=
TX_RING_KICK_WRAP
;
rp
->
prod
=
prod
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录