Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
a418500b
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
a418500b
编写于
9月 21, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
上级
62a36c43
f2065e42
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
19 addition
and
15 deletion
+19
-15
drivers/infiniband/core/mad_rmpp.c
drivers/infiniband/core/mad_rmpp.c
+8
-11
include/rdma/ib_mad.h
include/rdma/ib_mad.h
+11
-4
未找到文件。
drivers/infiniband/core/mad_rmpp.c
浏览文件 @
a418500b
...
...
@@ -412,8 +412,8 @@ static inline int get_mad_len(struct mad_rmpp_recv *rmpp_recv)
hdr_size
=
data_offset
(
rmpp_mad
->
mad_hdr
.
mgmt_class
);
data_size
=
sizeof
(
struct
ib_rmpp_mad
)
-
hdr_size
;
pad
=
data_size
-
be32_to_cpu
(
rmpp_mad
->
rmpp_hdr
.
paylen_newwin
);
if
(
pad
>
data_size
||
pad
<
0
)
pad
=
IB_MGMT_RMPP_DATA
-
be32_to_cpu
(
rmpp_mad
->
rmpp_hdr
.
paylen_newwin
);
if
(
pad
>
IB_MGMT_RMPP_DATA
||
pad
<
0
)
pad
=
0
;
return
hdr_size
+
rmpp_recv
->
seg_num
*
data_size
-
pad
;
...
...
@@ -583,6 +583,7 @@ static int send_next_seg(struct ib_mad_send_wr_private *mad_send_wr)
{
struct
ib_rmpp_mad
*
rmpp_mad
;
int
timeout
;
u32
paylen
;
rmpp_mad
=
(
struct
ib_rmpp_mad
*
)
mad_send_wr
->
send_wr
.
wr
.
ud
.
mad_hdr
;
ib_set_rmpp_flags
(
&
rmpp_mad
->
rmpp_hdr
,
IB_MGMT_RMPP_FLAG_ACTIVE
);
...
...
@@ -590,11 +591,9 @@ static int send_next_seg(struct ib_mad_send_wr_private *mad_send_wr)
if
(
mad_send_wr
->
seg_num
==
1
)
{
rmpp_mad
->
rmpp_hdr
.
rmpp_rtime_flags
|=
IB_MGMT_RMPP_FLAG_FIRST
;
rmpp_mad
->
rmpp_hdr
.
paylen_newwin
=
cpu_to_be32
(
mad_send_wr
->
total_seg
*
(
sizeof
(
struct
ib_rmpp_mad
)
-
offsetof
(
struct
ib_rmpp_mad
,
data
))
-
mad_send_wr
->
pad
);
paylen
=
mad_send_wr
->
total_seg
*
IB_MGMT_RMPP_DATA
-
mad_send_wr
->
pad
;
rmpp_mad
->
rmpp_hdr
.
paylen_newwin
=
cpu_to_be32
(
paylen
);
mad_send_wr
->
sg_list
[
0
].
length
=
sizeof
(
struct
ib_rmpp_mad
);
}
else
{
mad_send_wr
->
send_wr
.
num_sge
=
2
;
...
...
@@ -608,10 +607,8 @@ static int send_next_seg(struct ib_mad_send_wr_private *mad_send_wr)
if
(
mad_send_wr
->
seg_num
==
mad_send_wr
->
total_seg
)
{
rmpp_mad
->
rmpp_hdr
.
rmpp_rtime_flags
|=
IB_MGMT_RMPP_FLAG_LAST
;
rmpp_mad
->
rmpp_hdr
.
paylen_newwin
=
cpu_to_be32
(
sizeof
(
struct
ib_rmpp_mad
)
-
offsetof
(
struct
ib_rmpp_mad
,
data
)
-
mad_send_wr
->
pad
);
paylen
=
IB_MGMT_RMPP_DATA
-
mad_send_wr
->
pad
;
rmpp_mad
->
rmpp_hdr
.
paylen_newwin
=
cpu_to_be32
(
paylen
);
}
/* 2 seconds for an ACK until we can find the packet lifetime */
...
...
include/rdma/ib_mad.h
浏览文件 @
a418500b
...
...
@@ -108,6 +108,13 @@
#define IB_QP1_QKEY 0x80010000
#define IB_QP_SET_QKEY 0x80000000
enum
{
IB_MGMT_MAD_DATA
=
232
,
IB_MGMT_RMPP_DATA
=
220
,
IB_MGMT_VENDOR_DATA
=
216
,
IB_MGMT_SA_DATA
=
200
};
struct
ib_mad_hdr
{
u8
base_version
;
u8
mgmt_class
;
...
...
@@ -149,20 +156,20 @@ struct ib_sa_hdr {
struct
ib_mad
{
struct
ib_mad_hdr
mad_hdr
;
u8
data
[
232
];
u8
data
[
IB_MGMT_MAD_DATA
];
};
struct
ib_rmpp_mad
{
struct
ib_mad_hdr
mad_hdr
;
struct
ib_rmpp_hdr
rmpp_hdr
;
u8
data
[
220
];
u8
data
[
IB_MGMT_RMPP_DATA
];
};
struct
ib_sa_mad
{
struct
ib_mad_hdr
mad_hdr
;
struct
ib_rmpp_hdr
rmpp_hdr
;
struct
ib_sa_hdr
sa_hdr
;
u8
data
[
200
];
u8
data
[
IB_MGMT_SA_DATA
];
}
__attribute__
((
packed
));
struct
ib_vendor_mad
{
...
...
@@ -170,7 +177,7 @@ struct ib_vendor_mad {
struct
ib_rmpp_hdr
rmpp_hdr
;
u8
reserved
;
u8
oui
[
3
];
u8
data
[
216
];
u8
data
[
IB_MGMT_VENDOR_DATA
];
};
struct
ib_class_port_info
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录