Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Linux-御风守护者
linux
提交
0c8dfc83
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,发现更多精彩内容 >>
提交
0c8dfc83
编写于
1月 27, 2009
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
net: Add skb_record_rx_queue() calls to multiqueue capable drivers.
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
d5a9e24a
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
13 addition
and
0 deletion
+13
-0
drivers/net/bnx2.c
drivers/net/bnx2.c
+2
-0
drivers/net/bnx2x_main.c
drivers/net/bnx2x_main.c
+1
-0
drivers/net/cxgb3/sge.c
drivers/net/cxgb3/sge.c
+1
-0
drivers/net/igb/igb_main.c
drivers/net/igb/igb_main.c
+1
-0
drivers/net/ixgbe/ixgbe_main.c
drivers/net/ixgbe/ixgbe_main.c
+1
-0
drivers/net/mlx4/en_rx.c
drivers/net/mlx4/en_rx.c
+1
-0
drivers/net/myri10ge/myri10ge.c
drivers/net/myri10ge/myri10ge.c
+1
-0
drivers/net/niu.c
drivers/net/niu.c
+1
-0
drivers/net/qlge/qlge_main.c
drivers/net/qlge/qlge_main.c
+1
-0
drivers/net/s2io.c
drivers/net/s2io.c
+1
-0
drivers/net/sfc/rx.c
drivers/net/sfc/rx.c
+2
-0
未找到文件。
drivers/net/bnx2.c
浏览文件 @
0c8dfc83
...
@@ -3007,6 +3007,8 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
...
@@ -3007,6 +3007,8 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
skb
->
ip_summed
=
CHECKSUM_UNNECESSARY
;
skb
->
ip_summed
=
CHECKSUM_UNNECESSARY
;
}
}
skb_record_rx_queue
(
skb
,
bnapi
-
&
bp
->
bnx2_napi
[
0
]);
#ifdef BCM_VLAN
#ifdef BCM_VLAN
if
(
hw_vlan
)
if
(
hw_vlan
)
vlan_hwaccel_receive_skb
(
skb
,
bp
->
vlgrp
,
vtag
);
vlan_hwaccel_receive_skb
(
skb
,
bp
->
vlgrp
,
vtag
);
...
...
drivers/net/bnx2x_main.c
浏览文件 @
0c8dfc83
...
@@ -1325,6 +1325,7 @@ static void bnx2x_tpa_stop(struct bnx2x *bp, struct bnx2x_fastpath *fp,
...
@@ -1325,6 +1325,7 @@ static void bnx2x_tpa_stop(struct bnx2x *bp, struct bnx2x_fastpath *fp,
skb
->
protocol
=
eth_type_trans
(
skb
,
bp
->
dev
);
skb
->
protocol
=
eth_type_trans
(
skb
,
bp
->
dev
);
skb
->
ip_summed
=
CHECKSUM_UNNECESSARY
;
skb
->
ip_summed
=
CHECKSUM_UNNECESSARY
;
skb_record_rx_queue
(
skb
,
queue
);
{
{
struct
iphdr
*
iph
;
struct
iphdr
*
iph
;
...
...
drivers/net/cxgb3/sge.c
浏览文件 @
0c8dfc83
...
@@ -1937,6 +1937,7 @@ static void rx_eth(struct adapter *adap, struct sge_rspq *rq,
...
@@ -1937,6 +1937,7 @@ static void rx_eth(struct adapter *adap, struct sge_rspq *rq,
skb
->
ip_summed
=
CHECKSUM_UNNECESSARY
;
skb
->
ip_summed
=
CHECKSUM_UNNECESSARY
;
}
else
}
else
skb
->
ip_summed
=
CHECKSUM_NONE
;
skb
->
ip_summed
=
CHECKSUM_NONE
;
skb_record_rx_queue
(
skb
,
qs
-
&
adap
->
sge
.
qs
[
0
]);
if
(
unlikely
(
p
->
vlan_valid
))
{
if
(
unlikely
(
p
->
vlan_valid
))
{
struct
vlan_group
*
grp
=
pi
->
vlan_grp
;
struct
vlan_group
*
grp
=
pi
->
vlan_grp
;
...
...
drivers/net/igb/igb_main.c
浏览文件 @
0c8dfc83
...
@@ -3751,6 +3751,7 @@ static void igb_receive_skb(struct igb_ring *ring, u8 status,
...
@@ -3751,6 +3751,7 @@ static void igb_receive_skb(struct igb_ring *ring, u8 status,
struct
igb_adapter
*
adapter
=
ring
->
adapter
;
struct
igb_adapter
*
adapter
=
ring
->
adapter
;
bool
vlan_extracted
=
(
adapter
->
vlgrp
&&
(
status
&
E1000_RXD_STAT_VP
));
bool
vlan_extracted
=
(
adapter
->
vlgrp
&&
(
status
&
E1000_RXD_STAT_VP
));
skb_record_rx_queue
(
skb
,
ring
->
queue_index
);
if
(
skb
->
ip_summed
==
CHECKSUM_UNNECESSARY
)
{
if
(
skb
->
ip_summed
==
CHECKSUM_UNNECESSARY
)
{
if
(
vlan_extracted
)
if
(
vlan_extracted
)
vlan_gro_receive
(
&
ring
->
napi
,
adapter
->
vlgrp
,
vlan_gro_receive
(
&
ring
->
napi
,
adapter
->
vlgrp
,
...
...
drivers/net/ixgbe/ixgbe_main.c
浏览文件 @
0c8dfc83
...
@@ -414,6 +414,7 @@ static void ixgbe_receive_skb(struct ixgbe_q_vector *q_vector,
...
@@ -414,6 +414,7 @@ static void ixgbe_receive_skb(struct ixgbe_q_vector *q_vector,
bool
is_vlan
=
(
status
&
IXGBE_RXD_STAT_VP
);
bool
is_vlan
=
(
status
&
IXGBE_RXD_STAT_VP
);
u16
tag
=
le16_to_cpu
(
rx_desc
->
wb
.
upper
.
vlan
);
u16
tag
=
le16_to_cpu
(
rx_desc
->
wb
.
upper
.
vlan
);
skb_record_rx_queue
(
skb
,
q_vector
-
&
adapter
->
q_vector
[
0
]);
if
(
skb
->
ip_summed
==
CHECKSUM_UNNECESSARY
)
{
if
(
skb
->
ip_summed
==
CHECKSUM_UNNECESSARY
)
{
if
(
adapter
->
vlgrp
&&
is_vlan
&&
(
tag
!=
0
))
if
(
adapter
->
vlgrp
&&
is_vlan
&&
(
tag
!=
0
))
vlan_gro_receive
(
napi
,
adapter
->
vlgrp
,
tag
,
skb
);
vlan_gro_receive
(
napi
,
adapter
->
vlgrp
,
tag
,
skb
);
...
...
drivers/net/mlx4/en_rx.c
浏览文件 @
0c8dfc83
...
@@ -768,6 +768,7 @@ int mlx4_en_process_rx_cq(struct net_device *dev, struct mlx4_en_cq *cq, int bud
...
@@ -768,6 +768,7 @@ int mlx4_en_process_rx_cq(struct net_device *dev, struct mlx4_en_cq *cq, int bud
skb
->
ip_summed
=
ip_summed
;
skb
->
ip_summed
=
ip_summed
;
skb
->
protocol
=
eth_type_trans
(
skb
,
dev
);
skb
->
protocol
=
eth_type_trans
(
skb
,
dev
);
skb_record_rx_queue
(
skb
,
cq
->
ring
);
/* Push it up the stack */
/* Push it up the stack */
if
(
priv
->
vlgrp
&&
(
be32_to_cpu
(
cqe
->
vlan_my_qpn
)
&
if
(
priv
->
vlgrp
&&
(
be32_to_cpu
(
cqe
->
vlan_my_qpn
)
&
...
...
drivers/net/myri10ge/myri10ge.c
浏览文件 @
0c8dfc83
...
@@ -1324,6 +1324,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, struct myri10ge_rx_buf *rx,
...
@@ -1324,6 +1324,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, struct myri10ge_rx_buf *rx,
skb_shinfo
(
skb
)
->
nr_frags
=
0
;
skb_shinfo
(
skb
)
->
nr_frags
=
0
;
}
}
skb
->
protocol
=
eth_type_trans
(
skb
,
dev
);
skb
->
protocol
=
eth_type_trans
(
skb
,
dev
);
skb_record_rx_queue
(
skb
,
ss
-
&
mgp
->
ss
[
0
]);
if
(
mgp
->
csum_flag
)
{
if
(
mgp
->
csum_flag
)
{
if
((
skb
->
protocol
==
htons
(
ETH_P_IP
))
||
if
((
skb
->
protocol
==
htons
(
ETH_P_IP
))
||
...
...
drivers/net/niu.c
浏览文件 @
0c8dfc83
...
@@ -3390,6 +3390,7 @@ static int niu_process_rx_pkt(struct niu *np, struct rx_ring_info *rp)
...
@@ -3390,6 +3390,7 @@ static int niu_process_rx_pkt(struct niu *np, struct rx_ring_info *rp)
rp
->
rx_bytes
+=
skb
->
len
;
rp
->
rx_bytes
+=
skb
->
len
;
skb
->
protocol
=
eth_type_trans
(
skb
,
np
->
dev
);
skb
->
protocol
=
eth_type_trans
(
skb
,
np
->
dev
);
skb_record_rx_queue
(
skb
,
rp
->
rx_channel
);
netif_receive_skb
(
skb
);
netif_receive_skb
(
skb
);
return
num_rcr
;
return
num_rcr
;
...
...
drivers/net/qlge/qlge_main.c
浏览文件 @
0c8dfc83
...
@@ -1436,6 +1436,7 @@ static void ql_process_mac_rx_intr(struct ql_adapter *qdev,
...
@@ -1436,6 +1436,7 @@ static void ql_process_mac_rx_intr(struct ql_adapter *qdev,
qdev
->
stats
.
rx_packets
++
;
qdev
->
stats
.
rx_packets
++
;
qdev
->
stats
.
rx_bytes
+=
skb
->
len
;
qdev
->
stats
.
rx_bytes
+=
skb
->
len
;
skb
->
protocol
=
eth_type_trans
(
skb
,
ndev
);
skb
->
protocol
=
eth_type_trans
(
skb
,
ndev
);
skb_record_rx_queue
(
skb
,
rx_ring
-
&
qdev
->
rx_ring
[
0
]);
if
(
qdev
->
vlgrp
&&
(
ib_mac_rsp
->
flags2
&
IB_MAC_IOCB_RSP_V
))
{
if
(
qdev
->
vlgrp
&&
(
ib_mac_rsp
->
flags2
&
IB_MAC_IOCB_RSP_V
))
{
QPRINTK
(
qdev
,
RX_STATUS
,
DEBUG
,
QPRINTK
(
qdev
,
RX_STATUS
,
DEBUG
,
"Passing a VLAN packet upstream.
\n
"
);
"Passing a VLAN packet upstream.
\n
"
);
...
...
drivers/net/s2io.c
浏览文件 @
0c8dfc83
...
@@ -7542,6 +7542,7 @@ static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp)
...
@@ -7542,6 +7542,7 @@ static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp)
sp
->
mac_control
.
stats_info
->
sw_stat
.
mem_freed
+=
skb
->
truesize
;
sp
->
mac_control
.
stats_info
->
sw_stat
.
mem_freed
+=
skb
->
truesize
;
send_up:
send_up:
skb_record_rx_queue
(
skb
,
ring_no
);
queue_rx_frame
(
skb
,
RXD_GET_VLAN_TAG
(
rxdp
->
Control_2
));
queue_rx_frame
(
skb
,
RXD_GET_VLAN_TAG
(
rxdp
->
Control_2
));
aggregate:
aggregate:
sp
->
mac_control
.
rings
[
ring_no
].
rx_bufs_left
-=
1
;
sp
->
mac_control
.
rings
[
ring_no
].
rx_bufs_left
-=
1
;
...
...
drivers/net/sfc/rx.c
浏览文件 @
0c8dfc83
...
@@ -575,6 +575,8 @@ void __efx_rx_packet(struct efx_channel *channel,
...
@@ -575,6 +575,8 @@ void __efx_rx_packet(struct efx_channel *channel,
/* Set the SKB flags */
/* Set the SKB flags */
skb
->
ip_summed
=
CHECKSUM_NONE
;
skb
->
ip_summed
=
CHECKSUM_NONE
;
skb_record_rx_queue
(
skb
,
channel
->
channel
);
/* Pass the packet up */
/* Pass the packet up */
netif_receive_skb
(
skb
);
netif_receive_skb
(
skb
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录