Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
043332cf
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
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看板
提交
043332cf
编写于
3月 15, 2011
作者:
R
Roland Dreier
浏览文件
操作
浏览文件
下载
差异文件
Merge branches 'cma', 'cxgb4', 'ipath' and 'qib' into for-next
上级
a396d43a
db5d040d
2a543904
36b87b41
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
52 addition
and
20 deletion
+52
-20
drivers/infiniband/hw/cxgb4/cm.c
drivers/infiniband/hw/cxgb4/cm.c
+4
-2
drivers/infiniband/hw/cxgb4/device.c
drivers/infiniband/hw/cxgb4/device.c
+18
-6
drivers/infiniband/hw/cxgb4/iw_cxgb4.h
drivers/infiniband/hw/cxgb4/iw_cxgb4.h
+0
-1
drivers/infiniband/hw/cxgb4/qp.c
drivers/infiniband/hw/cxgb4/qp.c
+2
-2
drivers/infiniband/hw/cxgb4/t4.h
drivers/infiniband/hw/cxgb4/t4.h
+7
-1
drivers/infiniband/hw/ipath/ipath_sysfs.c
drivers/infiniband/hw/ipath/ipath_sysfs.c
+1
-0
drivers/infiniband/hw/qib/qib_iba7322.c
drivers/infiniband/hw/qib/qib_iba7322.c
+10
-3
drivers/infiniband/hw/qib/qib_mad.c
drivers/infiniband/hw/qib/qib_mad.c
+7
-5
drivers/infiniband/hw/qib/qib_qsfp.h
drivers/infiniband/hw/qib/qib_qsfp.h
+2
-0
drivers/net/cxgb4/t4_msg.h
drivers/net/cxgb4/t4_msg.h
+1
-0
未找到文件。
drivers/infiniband/hw/cxgb4/cm.c
浏览文件 @
043332cf
...
@@ -61,9 +61,9 @@ static char *states[] = {
...
@@ -61,9 +61,9 @@ static char *states[] = {
NULL
,
NULL
,
};
};
static
int
dack_mode
;
static
int
dack_mode
=
1
;
module_param
(
dack_mode
,
int
,
0644
);
module_param
(
dack_mode
,
int
,
0644
);
MODULE_PARM_DESC
(
dack_mode
,
"Delayed ack mode (default=
0
)"
);
MODULE_PARM_DESC
(
dack_mode
,
"Delayed ack mode (default=
1
)"
);
int
c4iw_max_read_depth
=
8
;
int
c4iw_max_read_depth
=
8
;
module_param
(
c4iw_max_read_depth
,
int
,
0644
);
module_param
(
c4iw_max_read_depth
,
int
,
0644
);
...
@@ -482,6 +482,7 @@ static int send_connect(struct c4iw_ep *ep)
...
@@ -482,6 +482,7 @@ static int send_connect(struct c4iw_ep *ep)
TX_CHAN
(
ep
->
tx_chan
)
|
TX_CHAN
(
ep
->
tx_chan
)
|
SMAC_SEL
(
ep
->
smac_idx
)
|
SMAC_SEL
(
ep
->
smac_idx
)
|
DSCP
(
ep
->
tos
)
|
DSCP
(
ep
->
tos
)
|
ULP_MODE
(
ULP_MODE_TCPDDP
)
|
RCV_BUFSIZ
(
rcv_win
>>
10
);
RCV_BUFSIZ
(
rcv_win
>>
10
);
opt2
=
RX_CHANNEL
(
0
)
|
opt2
=
RX_CHANNEL
(
0
)
|
RSS_QUEUE_VALID
|
RSS_QUEUE
(
ep
->
rss_qid
);
RSS_QUEUE_VALID
|
RSS_QUEUE
(
ep
->
rss_qid
);
...
@@ -1274,6 +1275,7 @@ static void accept_cr(struct c4iw_ep *ep, __be32 peer_ip, struct sk_buff *skb,
...
@@ -1274,6 +1275,7 @@ static void accept_cr(struct c4iw_ep *ep, __be32 peer_ip, struct sk_buff *skb,
TX_CHAN
(
ep
->
tx_chan
)
|
TX_CHAN
(
ep
->
tx_chan
)
|
SMAC_SEL
(
ep
->
smac_idx
)
|
SMAC_SEL
(
ep
->
smac_idx
)
|
DSCP
(
ep
->
tos
)
|
DSCP
(
ep
->
tos
)
|
ULP_MODE
(
ULP_MODE_TCPDDP
)
|
RCV_BUFSIZ
(
rcv_win
>>
10
);
RCV_BUFSIZ
(
rcv_win
>>
10
);
opt2
=
RX_CHANNEL
(
0
)
|
opt2
=
RX_CHANNEL
(
0
)
|
RSS_QUEUE_VALID
|
RSS_QUEUE
(
ep
->
rss_qid
);
RSS_QUEUE_VALID
|
RSS_QUEUE
(
ep
->
rss_qid
);
...
...
drivers/infiniband/hw/cxgb4/device.c
浏览文件 @
043332cf
...
@@ -87,17 +87,22 @@ static int dump_qp(int id, void *p, void *data)
...
@@ -87,17 +87,22 @@ static int dump_qp(int id, void *p, void *data)
return
1
;
return
1
;
if
(
qp
->
ep
)
if
(
qp
->
ep
)
cc
=
snprintf
(
qpd
->
buf
+
qpd
->
pos
,
space
,
"qp id %u state %u "
cc
=
snprintf
(
qpd
->
buf
+
qpd
->
pos
,
space
,
"qp sq id %u rq id %u state %u onchip %u "
"ep tid %u state %u %pI4:%u->%pI4:%u
\n
"
,
"ep tid %u state %u %pI4:%u->%pI4:%u
\n
"
,
qp
->
wq
.
sq
.
qid
,
(
int
)
qp
->
attr
.
state
,
qp
->
wq
.
sq
.
qid
,
qp
->
wq
.
rq
.
qid
,
(
int
)
qp
->
attr
.
state
,
qp
->
wq
.
sq
.
flags
&
T4_SQ_ONCHIP
,
qp
->
ep
->
hwtid
,
(
int
)
qp
->
ep
->
com
.
state
,
qp
->
ep
->
hwtid
,
(
int
)
qp
->
ep
->
com
.
state
,
&
qp
->
ep
->
com
.
local_addr
.
sin_addr
.
s_addr
,
&
qp
->
ep
->
com
.
local_addr
.
sin_addr
.
s_addr
,
ntohs
(
qp
->
ep
->
com
.
local_addr
.
sin_port
),
ntohs
(
qp
->
ep
->
com
.
local_addr
.
sin_port
),
&
qp
->
ep
->
com
.
remote_addr
.
sin_addr
.
s_addr
,
&
qp
->
ep
->
com
.
remote_addr
.
sin_addr
.
s_addr
,
ntohs
(
qp
->
ep
->
com
.
remote_addr
.
sin_port
));
ntohs
(
qp
->
ep
->
com
.
remote_addr
.
sin_port
));
else
else
cc
=
snprintf
(
qpd
->
buf
+
qpd
->
pos
,
space
,
"qp id %u state %u
\n
"
,
cc
=
snprintf
(
qpd
->
buf
+
qpd
->
pos
,
space
,
qp
->
wq
.
sq
.
qid
,
(
int
)
qp
->
attr
.
state
);
"qp sq id %u rq id %u state %u onchip %u
\n
"
,
qp
->
wq
.
sq
.
qid
,
qp
->
wq
.
rq
.
qid
,
(
int
)
qp
->
attr
.
state
,
qp
->
wq
.
sq
.
flags
&
T4_SQ_ONCHIP
);
if
(
cc
<
space
)
if
(
cc
<
space
)
qpd
->
pos
+=
cc
;
qpd
->
pos
+=
cc
;
return
0
;
return
0
;
...
@@ -368,7 +373,6 @@ static void c4iw_rdev_close(struct c4iw_rdev *rdev)
...
@@ -368,7 +373,6 @@ static void c4iw_rdev_close(struct c4iw_rdev *rdev)
static
void
c4iw_remove
(
struct
c4iw_dev
*
dev
)
static
void
c4iw_remove
(
struct
c4iw_dev
*
dev
)
{
{
PDBG
(
"%s c4iw_dev %p
\n
"
,
__func__
,
dev
);
PDBG
(
"%s c4iw_dev %p
\n
"
,
__func__
,
dev
);
cancel_delayed_work_sync
(
&
dev
->
db_drop_task
);
list_del
(
&
dev
->
entry
);
list_del
(
&
dev
->
entry
);
if
(
dev
->
registered
)
if
(
dev
->
registered
)
c4iw_unregister_device
(
dev
);
c4iw_unregister_device
(
dev
);
...
@@ -523,8 +527,16 @@ static int c4iw_uld_state_change(void *handle, enum cxgb4_state new_state)
...
@@ -523,8 +527,16 @@ static int c4iw_uld_state_change(void *handle, enum cxgb4_state new_state)
case
CXGB4_STATE_START_RECOVERY
:
case
CXGB4_STATE_START_RECOVERY
:
printk
(
KERN_INFO
MOD
"%s: Fatal Error
\n
"
,
printk
(
KERN_INFO
MOD
"%s: Fatal Error
\n
"
,
pci_name
(
dev
->
rdev
.
lldi
.
pdev
));
pci_name
(
dev
->
rdev
.
lldi
.
pdev
));
if
(
dev
->
registered
)
dev
->
rdev
.
flags
|=
T4_FATAL_ERROR
;
if
(
dev
->
registered
)
{
struct
ib_event
event
;
memset
(
&
event
,
0
,
sizeof
event
);
event
.
event
=
IB_EVENT_DEVICE_FATAL
;
event
.
device
=
&
dev
->
ibdev
;
ib_dispatch_event
(
&
event
);
c4iw_unregister_device
(
dev
);
c4iw_unregister_device
(
dev
);
}
break
;
break
;
case
CXGB4_STATE_DETACH
:
case
CXGB4_STATE_DETACH
:
printk
(
KERN_INFO
MOD
"%s: Detach
\n
"
,
printk
(
KERN_INFO
MOD
"%s: Detach
\n
"
,
...
...
drivers/infiniband/hw/cxgb4/iw_cxgb4.h
浏览文件 @
043332cf
...
@@ -176,7 +176,6 @@ struct c4iw_dev {
...
@@ -176,7 +176,6 @@ struct c4iw_dev {
struct
idr
mmidr
;
struct
idr
mmidr
;
spinlock_t
lock
;
spinlock_t
lock
;
struct
list_head
entry
;
struct
list_head
entry
;
struct
delayed_work
db_drop_task
;
struct
dentry
*
debugfs_root
;
struct
dentry
*
debugfs_root
;
u8
registered
;
u8
registered
;
};
};
...
...
drivers/infiniband/hw/cxgb4/qp.c
浏览文件 @
043332cf
...
@@ -31,9 +31,9 @@
...
@@ -31,9 +31,9 @@
*/
*/
#include "iw_cxgb4.h"
#include "iw_cxgb4.h"
static
int
ocqp_support
;
static
int
ocqp_support
=
1
;
module_param
(
ocqp_support
,
int
,
0644
);
module_param
(
ocqp_support
,
int
,
0644
);
MODULE_PARM_DESC
(
ocqp_support
,
"Support on-chip SQs (default=
0
)"
);
MODULE_PARM_DESC
(
ocqp_support
,
"Support on-chip SQs (default=
1
)"
);
static
void
set_state
(
struct
c4iw_qp
*
qhp
,
enum
c4iw_qp_state
state
)
static
void
set_state
(
struct
c4iw_qp
*
qhp
,
enum
c4iw_qp_state
state
)
{
{
...
...
drivers/infiniband/hw/cxgb4/t4.h
浏览文件 @
043332cf
...
@@ -507,8 +507,14 @@ static inline void t4_swcq_consume(struct t4_cq *cq)
...
@@ -507,8 +507,14 @@ static inline void t4_swcq_consume(struct t4_cq *cq)
static
inline
void
t4_hwcq_consume
(
struct
t4_cq
*
cq
)
static
inline
void
t4_hwcq_consume
(
struct
t4_cq
*
cq
)
{
{
cq
->
bits_type_ts
=
cq
->
queue
[
cq
->
cidx
].
bits_type_ts
;
cq
->
bits_type_ts
=
cq
->
queue
[
cq
->
cidx
].
bits_type_ts
;
if
(
++
cq
->
cidx_inc
==
cq
->
size
)
if
(
++
cq
->
cidx_inc
==
(
cq
->
size
>>
4
))
{
u32
val
;
val
=
SEINTARM
(
0
)
|
CIDXINC
(
cq
->
cidx_inc
)
|
TIMERREG
(
7
)
|
INGRESSQID
(
cq
->
cqid
);
writel
(
val
,
cq
->
gts
);
cq
->
cidx_inc
=
0
;
cq
->
cidx_inc
=
0
;
}
if
(
++
cq
->
cidx
==
cq
->
size
)
{
if
(
++
cq
->
cidx
==
cq
->
size
)
{
cq
->
cidx
=
0
;
cq
->
cidx
=
0
;
cq
->
gen
^=
1
;
cq
->
gen
^=
1
;
...
...
drivers/infiniband/hw/ipath/ipath_sysfs.c
浏览文件 @
043332cf
...
@@ -557,6 +557,7 @@ static ssize_t store_reset(struct device *dev,
...
@@ -557,6 +557,7 @@ static ssize_t store_reset(struct device *dev,
dev_info
(
dev
,
"Unit %d is disabled, can't reset
\n
"
,
dev_info
(
dev
,
"Unit %d is disabled, can't reset
\n
"
,
dd
->
ipath_unit
);
dd
->
ipath_unit
);
ret
=
-
EINVAL
;
ret
=
-
EINVAL
;
goto
bail
;
}
}
ret
=
ipath_reset_device
(
dd
->
ipath_unit
);
ret
=
ipath_reset_device
(
dd
->
ipath_unit
);
bail:
bail:
...
...
drivers/infiniband/hw/qib/qib_iba7322.c
浏览文件 @
043332cf
...
@@ -5582,9 +5582,16 @@ static void qsfp_7322_event(struct work_struct *work)
...
@@ -5582,9 +5582,16 @@ static void qsfp_7322_event(struct work_struct *work)
* even on failure to read cable information. We don't
* even on failure to read cable information. We don't
* get here for QME, so IS_QME check not needed here.
* get here for QME, so IS_QME check not needed here.
*/
*/
le2
=
(
!
ret
&&
qd
->
cache
.
atten
[
1
]
>=
qib_long_atten
&&
if
(
!
ret
&&
!
ppd
->
dd
->
cspec
->
r1
)
{
!
ppd
->
dd
->
cspec
->
r1
&&
QSFP_IS_CU
(
qd
->
cache
.
tech
))
?
if
(
QSFP_IS_ACTIVE_FAR
(
qd
->
cache
.
tech
))
LE2_5m
:
LE2_DEFAULT
;
le2
=
LE2_QME
;
else
if
(
qd
->
cache
.
atten
[
1
]
>=
qib_long_atten
&&
QSFP_IS_CU
(
qd
->
cache
.
tech
))
le2
=
LE2_5m
;
else
le2
=
LE2_DEFAULT
;
}
else
le2
=
LE2_DEFAULT
;
ibsd_wr_allchans
(
ppd
,
13
,
(
le2
<<
7
),
BMASK
(
9
,
7
));
ibsd_wr_allchans
(
ppd
,
13
,
(
le2
<<
7
),
BMASK
(
9
,
7
));
init_txdds_table
(
ppd
,
0
);
init_txdds_table
(
ppd
,
0
);
}
}
...
...
drivers/infiniband/hw/qib/qib_mad.c
浏览文件 @
043332cf
...
@@ -464,8 +464,9 @@ static int subn_get_portinfo(struct ib_smp *smp, struct ib_device *ibdev,
...
@@ -464,8 +464,9 @@ static int subn_get_portinfo(struct ib_smp *smp, struct ib_device *ibdev,
memset
(
smp
->
data
,
0
,
sizeof
(
smp
->
data
));
memset
(
smp
->
data
,
0
,
sizeof
(
smp
->
data
));
/* Only return the mkey if the protection field allows it. */
/* Only return the mkey if the protection field allows it. */
if
(
smp
->
method
==
IB_MGMT_METHOD_SET
||
ibp
->
mkey
==
smp
->
mkey
||
if
(
!
(
smp
->
method
==
IB_MGMT_METHOD_GET
&&
ibp
->
mkeyprot
==
0
)
ibp
->
mkey
!=
smp
->
mkey
&&
ibp
->
mkeyprot
==
1
))
pip
->
mkey
=
ibp
->
mkey
;
pip
->
mkey
=
ibp
->
mkey
;
pip
->
gid_prefix
=
ibp
->
gid_prefix
;
pip
->
gid_prefix
=
ibp
->
gid_prefix
;
lid
=
ppd
->
lid
;
lid
=
ppd
->
lid
;
...
@@ -705,7 +706,7 @@ static int subn_set_portinfo(struct ib_smp *smp, struct ib_device *ibdev,
...
@@ -705,7 +706,7 @@ static int subn_set_portinfo(struct ib_smp *smp, struct ib_device *ibdev,
lwe
=
pip
->
link_width_enabled
;
lwe
=
pip
->
link_width_enabled
;
if
(
lwe
)
{
if
(
lwe
)
{
if
(
lwe
==
0xFF
)
if
(
lwe
==
0xFF
)
lwe
=
ppd
->
link_width_supported
;
set_link_width_enabled
(
ppd
,
ppd
->
link_width_supported
)
;
else
if
(
lwe
>=
16
||
(
lwe
&
~
ppd
->
link_width_supported
))
else
if
(
lwe
>=
16
||
(
lwe
&
~
ppd
->
link_width_supported
))
smp
->
status
|=
IB_SMP_INVALID_FIELD
;
smp
->
status
|=
IB_SMP_INVALID_FIELD
;
else
if
(
lwe
!=
ppd
->
link_width_enabled
)
else
if
(
lwe
!=
ppd
->
link_width_enabled
)
...
@@ -720,7 +721,8 @@ static int subn_set_portinfo(struct ib_smp *smp, struct ib_device *ibdev,
...
@@ -720,7 +721,8 @@ static int subn_set_portinfo(struct ib_smp *smp, struct ib_device *ibdev,
* speeds.
* speeds.
*/
*/
if
(
lse
==
15
)
if
(
lse
==
15
)
lse
=
ppd
->
link_speed_supported
;
set_link_speed_enabled
(
ppd
,
ppd
->
link_speed_supported
);
else
if
(
lse
>=
8
||
(
lse
&
~
ppd
->
link_speed_supported
))
else
if
(
lse
>=
8
||
(
lse
&
~
ppd
->
link_speed_supported
))
smp
->
status
|=
IB_SMP_INVALID_FIELD
;
smp
->
status
|=
IB_SMP_INVALID_FIELD
;
else
if
(
lse
!=
ppd
->
link_speed_enabled
)
else
if
(
lse
!=
ppd
->
link_speed_enabled
)
...
@@ -849,7 +851,7 @@ static int subn_set_portinfo(struct ib_smp *smp, struct ib_device *ibdev,
...
@@ -849,7 +851,7 @@ static int subn_set_portinfo(struct ib_smp *smp, struct ib_device *ibdev,
if
(
clientrereg
)
if
(
clientrereg
)
pip
->
clientrereg_resv_subnetto
|=
0x80
;
pip
->
clientrereg_resv_subnetto
|=
0x80
;
goto
done
;
goto
get_only
;
err:
err:
smp
->
status
|=
IB_SMP_INVALID_FIELD
;
smp
->
status
|=
IB_SMP_INVALID_FIELD
;
...
...
drivers/infiniband/hw/qib/qib_qsfp.h
浏览文件 @
043332cf
...
@@ -79,6 +79,8 @@
...
@@ -79,6 +79,8 @@
extern
const
char
*
const
qib_qsfp_devtech
[
16
];
extern
const
char
*
const
qib_qsfp_devtech
[
16
];
/* Active Equalization includes fiber, copper full EQ, and copper near Eq */
/* Active Equalization includes fiber, copper full EQ, and copper near Eq */
#define QSFP_IS_ACTIVE(tech) ((0xA2FF >> ((tech) >> 4)) & 1)
#define QSFP_IS_ACTIVE(tech) ((0xA2FF >> ((tech) >> 4)) & 1)
/* Active Equalization includes fiber, copper full EQ, and copper far Eq */
#define QSFP_IS_ACTIVE_FAR(tech) ((0x32FF >> ((tech) >> 4)) & 1)
/* Attenuation should be valid for copper other than full/near Eq */
/* Attenuation should be valid for copper other than full/near Eq */
#define QSFP_HAS_ATTEN(tech) ((0x4D00 >> ((tech) >> 4)) & 1)
#define QSFP_HAS_ATTEN(tech) ((0x4D00 >> ((tech) >> 4)) & 1)
/* Length is only valid if technology is "copper" */
/* Length is only valid if technology is "copper" */
...
...
drivers/net/cxgb4/t4_msg.h
浏览文件 @
043332cf
...
@@ -123,6 +123,7 @@ enum {
...
@@ -123,6 +123,7 @@ enum {
ULP_MODE_NONE
=
0
,
ULP_MODE_NONE
=
0
,
ULP_MODE_ISCSI
=
2
,
ULP_MODE_ISCSI
=
2
,
ULP_MODE_RDMA
=
4
,
ULP_MODE_RDMA
=
4
,
ULP_MODE_TCPDDP
=
5
,
ULP_MODE_FCOE
=
6
,
ULP_MODE_FCOE
=
6
,
};
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录