Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
b806ef3b
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
163
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看板
提交
b806ef3b
编写于
6月 02, 2015
作者:
D
Doug Ledford
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-4.2-misc' into k.o/for-4.2
上级
73cdaaee
11562568
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
47 addition
and
18 deletion
+47
-18
drivers/infiniband/core/cma.c
drivers/infiniband/core/cma.c
+2
-0
drivers/infiniband/hw/mlx4/main.c
drivers/infiniband/hw/mlx4/main.c
+3
-2
drivers/infiniband/hw/nes/nes_cm.c
drivers/infiniband/hw/nes/nes_cm.c
+7
-0
drivers/infiniband/hw/nes/nes_cm.h
drivers/infiniband/hw/nes/nes_cm.h
+2
-0
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+6
-1
drivers/infiniband/ulp/ipoib/ipoib_main.c
drivers/infiniband/ulp/ipoib/ipoib_main.c
+2
-2
include/rdma/iw_cm.h
include/rdma/iw_cm.h
+1
-0
net/rds/ib_send.c
net/rds/ib_send.c
+11
-6
net/rds/iw_send.c
net/rds/iw_send.c
+11
-7
net/rds/rds.h
net/rds/rds.h
+2
-0
未找到文件。
drivers/infiniband/core/cma.c
浏览文件 @
b806ef3b
...
...
@@ -1619,6 +1619,7 @@ static int cma_iw_listen(struct rdma_id_private *id_priv, int backlog)
if
(
IS_ERR
(
id
))
return
PTR_ERR
(
id
);
id
->
tos
=
id_priv
->
tos
;
id_priv
->
cm_id
.
iw
=
id
;
memcpy
(
&
id_priv
->
cm_id
.
iw
->
local_addr
,
cma_src_addr
(
id_priv
),
...
...
@@ -2851,6 +2852,7 @@ static int cma_connect_iw(struct rdma_id_private *id_priv,
if
(
IS_ERR
(
cm_id
))
return
PTR_ERR
(
cm_id
);
cm_id
->
tos
=
id_priv
->
tos
;
id_priv
->
cm_id
.
iw
=
cm_id
;
memcpy
(
&
cm_id
->
local_addr
,
cma_src_addr
(
id_priv
),
...
...
drivers/infiniband/hw/mlx4/main.c
浏览文件 @
b806ef3b
...
...
@@ -1185,7 +1185,6 @@ static struct ib_flow *mlx4_ib_create_flow(struct ib_qp *qp,
&
mflow
->
reg_id
[
i
].
id
);
if
(
err
)
goto
err_create_flow
;
i
++
;
if
(
is_bonded
)
{
/* Application always sees one port so the mirror rule
* must be on port #2
...
...
@@ -1200,6 +1199,7 @@ static struct ib_flow *mlx4_ib_create_flow(struct ib_qp *qp,
j
++
;
}
i
++
;
}
if
(
i
<
ARRAY_SIZE
(
type
)
&&
flow_attr
->
type
==
IB_FLOW_ATTR_NORMAL
)
{
...
...
@@ -1207,7 +1207,7 @@ static struct ib_flow *mlx4_ib_create_flow(struct ib_qp *qp,
&
mflow
->
reg_id
[
i
].
id
);
if
(
err
)
goto
err_create_flow
;
i
++
;
if
(
is_bonded
)
{
flow_attr
->
port
=
2
;
err
=
mlx4_ib_tunnel_steer_add
(
qp
,
flow_attr
,
...
...
@@ -1218,6 +1218,7 @@ static struct ib_flow *mlx4_ib_create_flow(struct ib_qp *qp,
j
++
;
}
/* function to create mirror rule */
i
++
;
}
return
&
mflow
->
ibflow
;
...
...
drivers/infiniband/hw/nes/nes_cm.c
浏览文件 @
b806ef3b
...
...
@@ -1616,6 +1616,8 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
&
cm_node
->
loc_addr
,
cm_node
->
loc_port
,
&
cm_node
->
rem_addr
,
cm_node
->
rem_port
);
cm_node
->
listener
=
listener
;
if
(
listener
)
cm_node
->
tos
=
listener
->
tos
;
cm_node
->
netdev
=
nesvnic
->
netdev
;
cm_node
->
cm_id
=
cm_info
->
cm_id
;
memcpy
(
cm_node
->
loc_mac
,
nesvnic
->
netdev
->
dev_addr
,
ETH_ALEN
);
...
...
@@ -2938,6 +2940,9 @@ static int nes_cm_init_tsa_conn(struct nes_qp *nesqp, struct nes_cm_node *cm_nod
nesqp
->
nesqp_context
->
misc2
|=
cpu_to_le32
(
64
<<
NES_QPCONTEXT_MISC2_TTL_SHIFT
);
nesqp
->
nesqp_context
->
misc2
|=
cpu_to_le32
(
cm_node
->
tos
<<
NES_QPCONTEXT_MISC2_TOS_SHIFT
);
nesqp
->
nesqp_context
->
mss
|=
cpu_to_le32
(((
u32
)
cm_node
->
tcp_cntxt
.
mss
)
<<
16
);
nesqp
->
nesqp_context
->
tcp_state_flow_label
|=
cpu_to_le32
(
...
...
@@ -3612,6 +3617,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
cm_node
->
ord_size
=
1
;
cm_node
->
apbvt_set
=
apbvt_set
;
cm_node
->
tos
=
cm_id
->
tos
;
nesqp
->
cm_node
=
cm_node
;
cm_node
->
nesqp
=
nesqp
;
nes_add_ref
(
&
nesqp
->
ibqp
);
...
...
@@ -3666,6 +3672,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
}
cm_id
->
provider_data
=
cm_node
;
cm_node
->
tos
=
cm_id
->
tos
;
if
(
!
cm_node
->
reused_node
)
{
if
(
nes_create_mapinfo
(
&
cm_info
))
...
...
drivers/infiniband/hw/nes/nes_cm.h
浏览文件 @
b806ef3b
...
...
@@ -303,6 +303,7 @@ struct nes_cm_listener {
int
backlog
;
enum
nes_cm_listener_state
listener_state
;
u32
reused_node
;
u8
tos
;
};
/* per connection node and node state information */
...
...
@@ -352,6 +353,7 @@ struct nes_cm_node {
struct
list_head
reset_entry
;
struct
nes_qp
*
nesqp
;
atomic_t
passive_state
;
u8
tos
;
};
/* structure for client or CM to fill when making CM api calls. */
...
...
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
浏览文件 @
b806ef3b
...
...
@@ -375,7 +375,12 @@ static struct ocrdma_pd *_ocrdma_alloc_pd(struct ocrdma_dev *dev,
if
(
dev
->
pd_mgr
->
pd_prealloc_valid
)
{
status
=
ocrdma_get_pd_num
(
dev
,
pd
);
return
(
status
==
0
)
?
pd
:
ERR_PTR
(
status
);
if
(
status
==
0
)
{
return
pd
;
}
else
{
kfree
(
pd
);
return
ERR_PTR
(
status
);
}
}
retry:
...
...
drivers/infiniband/ulp/ipoib/ipoib_main.c
浏览文件 @
b806ef3b
...
...
@@ -1128,7 +1128,7 @@ static int ipoib_neigh_hash_init(struct ipoib_dev_priv *priv)
{
struct
ipoib_neigh_table
*
ntbl
=
&
priv
->
ntbl
;
struct
ipoib_neigh_hash
*
htbl
;
struct
ipoib_neigh
**
buckets
;
struct
ipoib_neigh
__rcu
**
buckets
;
u32
size
;
clear_bit
(
IPOIB_NEIGH_TBL_FLUSH
,
&
priv
->
flags
);
...
...
@@ -1146,7 +1146,7 @@ static int ipoib_neigh_hash_init(struct ipoib_dev_priv *priv)
htbl
->
size
=
size
;
htbl
->
mask
=
(
size
-
1
);
htbl
->
buckets
=
buckets
;
ntbl
->
htbl
=
htbl
;
RCU_INIT_POINTER
(
ntbl
->
htbl
,
htbl
)
;
htbl
->
ntbl
=
ntbl
;
atomic_set
(
&
ntbl
->
entries
,
0
);
...
...
include/rdma/iw_cm.h
浏览文件 @
b806ef3b
...
...
@@ -91,6 +91,7 @@ struct iw_cm_id {
/* Used by provider to add and remove refs on IW cm_id */
void
(
*
add_ref
)(
struct
iw_cm_id
*
);
void
(
*
rem_ref
)(
struct
iw_cm_id
*
);
u8
tos
;
};
struct
iw_cm_conn_param
{
...
...
net/rds/ib_send.c
浏览文件 @
b806ef3b
...
...
@@ -571,6 +571,8 @@ int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
}
rds_message_addref
(
rm
);
rm
->
data
.
op_dmasg
=
0
;
rm
->
data
.
op_dmaoff
=
0
;
ic
->
i_data_op
=
&
rm
->
data
;
/* Finalize the header */
...
...
@@ -624,7 +626,7 @@ int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
send
=
&
ic
->
i_sends
[
pos
];
first
=
send
;
prev
=
NULL
;
scat
=
&
ic
->
i_data_op
->
op_sg
[
sg
];
scat
=
&
ic
->
i_data_op
->
op_sg
[
rm
->
data
.
op_dma
sg
];
i
=
0
;
do
{
unsigned
int
len
=
0
;
...
...
@@ -646,17 +648,20 @@ int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
/* Set up the data, if present */
if
(
i
<
work_alloc
&&
scat
!=
&
rm
->
data
.
op_sg
[
rm
->
data
.
op_count
])
{
len
=
min
(
RDS_FRAG_SIZE
,
ib_sg_dma_len
(
dev
,
scat
)
-
off
);
len
=
min
(
RDS_FRAG_SIZE
,
ib_sg_dma_len
(
dev
,
scat
)
-
rm
->
data
.
op_dmaoff
);
send
->
s_wr
.
num_sge
=
2
;
send
->
s_sge
[
1
].
addr
=
ib_sg_dma_address
(
dev
,
scat
)
+
off
;
send
->
s_sge
[
1
].
addr
=
ib_sg_dma_address
(
dev
,
scat
);
send
->
s_sge
[
1
].
addr
+=
rm
->
data
.
op_dmaoff
;
send
->
s_sge
[
1
].
length
=
len
;
bytes_sent
+=
len
;
off
+=
len
;
if
(
off
==
ib_sg_dma_len
(
dev
,
scat
))
{
rm
->
data
.
op_dma
off
+=
len
;
if
(
rm
->
data
.
op_dma
off
==
ib_sg_dma_len
(
dev
,
scat
))
{
scat
++
;
off
=
0
;
rm
->
data
.
op_dmasg
++
;
rm
->
data
.
op_dmaoff
=
0
;
}
}
...
...
net/rds/iw_send.c
浏览文件 @
b806ef3b
...
...
@@ -581,6 +581,8 @@ int rds_iw_xmit(struct rds_connection *conn, struct rds_message *rm,
ic
->
i_unsignaled_wrs
=
rds_iw_sysctl_max_unsig_wrs
;
ic
->
i_unsignaled_bytes
=
rds_iw_sysctl_max_unsig_bytes
;
rds_message_addref
(
rm
);
rm
->
data
.
op_dmasg
=
0
;
rm
->
data
.
op_dmaoff
=
0
;
ic
->
i_rm
=
rm
;
/* Finalize the header */
...
...
@@ -622,7 +624,7 @@ int rds_iw_xmit(struct rds_connection *conn, struct rds_message *rm,
send
=
&
ic
->
i_sends
[
pos
];
first
=
send
;
prev
=
NULL
;
scat
=
&
rm
->
data
.
op_sg
[
sg
];
scat
=
&
rm
->
data
.
op_sg
[
rm
->
data
.
op_dma
sg
];
sent
=
0
;
i
=
0
;
...
...
@@ -656,10 +658,11 @@ int rds_iw_xmit(struct rds_connection *conn, struct rds_message *rm,
send
=
&
ic
->
i_sends
[
pos
];
len
=
min
(
RDS_FRAG_SIZE
,
ib_sg_dma_len
(
dev
,
scat
)
-
off
);
len
=
min
(
RDS_FRAG_SIZE
,
ib_sg_dma_len
(
dev
,
scat
)
-
rm
->
data
.
op_dmaoff
);
rds_iw_xmit_populate_wr
(
ic
,
send
,
pos
,
ib_sg_dma_address
(
dev
,
scat
)
+
off
,
len
,
send_flags
);
ib_sg_dma_address
(
dev
,
scat
)
+
rm
->
data
.
op_dma
off
,
len
,
send_flags
);
/*
* We want to delay signaling completions just enough to get
...
...
@@ -687,10 +690,11 @@ int rds_iw_xmit(struct rds_connection *conn, struct rds_message *rm,
&
send
->
s_wr
,
send
->
s_wr
.
num_sge
,
send
->
s_wr
.
next
);
sent
+=
len
;
off
+=
len
;
if
(
off
==
ib_sg_dma_len
(
dev
,
scat
))
{
rm
->
data
.
op_dma
off
+=
len
;
if
(
rm
->
data
.
op_dma
off
==
ib_sg_dma_len
(
dev
,
scat
))
{
scat
++
;
off
=
0
;
rm
->
data
.
op_dmaoff
=
0
;
rm
->
data
.
op_dmasg
++
;
}
add_header:
...
...
net/rds/rds.h
浏览文件 @
b806ef3b
...
...
@@ -363,6 +363,8 @@ struct rds_message {
unsigned
int
op_active
:
1
;
unsigned
int
op_nents
;
unsigned
int
op_count
;
unsigned
int
op_dmasg
;
unsigned
int
op_dmaoff
;
struct
scatterlist
*
op_sg
;
}
data
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录