Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
FengXiao2002
Linux Imx
提交
f78cf0dc
L
Linux Imx
项目概览
FengXiao2002
/
Linux Imx
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
Linux Imx
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f78cf0dc
编写于
2月 14, 2006
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
上级
4cbf8767
7d2babc4
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
55 addition
and
26 deletion
+55
-26
drivers/infiniband/core/mad.c
drivers/infiniband/core/mad.c
+9
-1
drivers/infiniband/hw/mthca/mthca_cmd.c
drivers/infiniband/hw/mthca/mthca_cmd.c
+19
-19
drivers/infiniband/hw/mthca/mthca_dev.h
drivers/infiniband/hw/mthca/mthca_dev.h
+2
-2
drivers/infiniband/ulp/ipoib/ipoib.h
drivers/infiniband/ulp/ipoib/ipoib.h
+1
-0
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+24
-4
未找到文件。
drivers/infiniband/core/mad.c
浏览文件 @
f78cf0dc
...
...
@@ -665,7 +665,15 @@ static int handle_outgoing_dr_smp(struct ib_mad_agent_private *mad_agent_priv,
struct
ib_wc
mad_wc
;
struct
ib_send_wr
*
send_wr
=
&
mad_send_wr
->
send_wr
;
if
(
!
smi_handle_dr_smp_send
(
smp
,
device
->
node_type
,
port_num
))
{
/*
* Directed route handling starts if the initial LID routed part of
* a request or the ending LID routed part of a response is empty.
* If we are at the start of the LID routed part, don't update the
* hop_ptr or hop_cnt. See section 14.2.2, Vol 1 IB spec.
*/
if
((
ib_get_smp_direction
(
smp
)
?
smp
->
dr_dlid
:
smp
->
dr_slid
)
==
IB_LID_PERMISSIVE
&&
!
smi_handle_dr_smp_send
(
smp
,
device
->
node_type
,
port_num
))
{
ret
=
-
EINVAL
;
printk
(
KERN_ERR
PFX
"Invalid directed route
\n
"
);
goto
out
;
...
...
drivers/infiniband/hw/mthca/mthca_cmd.c
浏览文件 @
f78cf0dc
...
...
@@ -1029,25 +1029,6 @@ int mthca_QUERY_DEV_LIM(struct mthca_dev *dev,
MTHCA_GET
(
size
,
outbox
,
QUERY_DEV_LIM_UAR_ENTRY_SZ_OFFSET
);
dev_lim
->
uar_scratch_entry_sz
=
size
;
mthca_dbg
(
dev
,
"Max QPs: %d, reserved QPs: %d, entry size: %d
\n
"
,
dev_lim
->
max_qps
,
dev_lim
->
reserved_qps
,
dev_lim
->
qpc_entry_sz
);
mthca_dbg
(
dev
,
"Max SRQs: %d, reserved SRQs: %d, entry size: %d
\n
"
,
dev_lim
->
max_srqs
,
dev_lim
->
reserved_srqs
,
dev_lim
->
srq_entry_sz
);
mthca_dbg
(
dev
,
"Max CQs: %d, reserved CQs: %d, entry size: %d
\n
"
,
dev_lim
->
max_cqs
,
dev_lim
->
reserved_cqs
,
dev_lim
->
cqc_entry_sz
);
mthca_dbg
(
dev
,
"Max EQs: %d, reserved EQs: %d, entry size: %d
\n
"
,
dev_lim
->
max_eqs
,
dev_lim
->
reserved_eqs
,
dev_lim
->
eqc_entry_sz
);
mthca_dbg
(
dev
,
"reserved MPTs: %d, reserved MTTs: %d
\n
"
,
dev_lim
->
reserved_mrws
,
dev_lim
->
reserved_mtts
);
mthca_dbg
(
dev
,
"Max PDs: %d, reserved PDs: %d, reserved UARs: %d
\n
"
,
dev_lim
->
max_pds
,
dev_lim
->
reserved_pds
,
dev_lim
->
reserved_uars
);
mthca_dbg
(
dev
,
"Max QP/MCG: %d, reserved MGMs: %d
\n
"
,
dev_lim
->
max_pds
,
dev_lim
->
reserved_mgms
);
mthca_dbg
(
dev
,
"Max CQEs: %d, max WQEs: %d, max SRQ WQEs: %d
\n
"
,
dev_lim
->
max_cq_sz
,
dev_lim
->
max_qp_sz
,
dev_lim
->
max_srq_sz
);
mthca_dbg
(
dev
,
"Flags: %08x
\n
"
,
dev_lim
->
flags
);
if
(
mthca_is_memfree
(
dev
))
{
MTHCA_GET
(
field
,
outbox
,
QUERY_DEV_LIM_MAX_SRQ_SZ_OFFSET
);
dev_lim
->
max_srq_sz
=
1
<<
field
;
...
...
@@ -1093,6 +1074,25 @@ int mthca_QUERY_DEV_LIM(struct mthca_dev *dev,
dev_lim
->
mpt_entry_sz
=
MTHCA_MPT_ENTRY_SIZE
;
}
mthca_dbg
(
dev
,
"Max QPs: %d, reserved QPs: %d, entry size: %d
\n
"
,
dev_lim
->
max_qps
,
dev_lim
->
reserved_qps
,
dev_lim
->
qpc_entry_sz
);
mthca_dbg
(
dev
,
"Max SRQs: %d, reserved SRQs: %d, entry size: %d
\n
"
,
dev_lim
->
max_srqs
,
dev_lim
->
reserved_srqs
,
dev_lim
->
srq_entry_sz
);
mthca_dbg
(
dev
,
"Max CQs: %d, reserved CQs: %d, entry size: %d
\n
"
,
dev_lim
->
max_cqs
,
dev_lim
->
reserved_cqs
,
dev_lim
->
cqc_entry_sz
);
mthca_dbg
(
dev
,
"Max EQs: %d, reserved EQs: %d, entry size: %d
\n
"
,
dev_lim
->
max_eqs
,
dev_lim
->
reserved_eqs
,
dev_lim
->
eqc_entry_sz
);
mthca_dbg
(
dev
,
"reserved MPTs: %d, reserved MTTs: %d
\n
"
,
dev_lim
->
reserved_mrws
,
dev_lim
->
reserved_mtts
);
mthca_dbg
(
dev
,
"Max PDs: %d, reserved PDs: %d, reserved UARs: %d
\n
"
,
dev_lim
->
max_pds
,
dev_lim
->
reserved_pds
,
dev_lim
->
reserved_uars
);
mthca_dbg
(
dev
,
"Max QP/MCG: %d, reserved MGMs: %d
\n
"
,
dev_lim
->
max_pds
,
dev_lim
->
reserved_mgms
);
mthca_dbg
(
dev
,
"Max CQEs: %d, max WQEs: %d, max SRQ WQEs: %d
\n
"
,
dev_lim
->
max_cq_sz
,
dev_lim
->
max_qp_sz
,
dev_lim
->
max_srq_sz
);
mthca_dbg
(
dev
,
"Flags: %08x
\n
"
,
dev_lim
->
flags
);
out:
mthca_free_mailbox
(
dev
,
mailbox
);
return
err
;
...
...
drivers/infiniband/hw/mthca/mthca_dev.h
浏览文件 @
f78cf0dc
...
...
@@ -53,8 +53,8 @@
#define DRV_NAME "ib_mthca"
#define PFX DRV_NAME ": "
#define DRV_VERSION "0.0
6
"
#define DRV_RELDATE "
June 23, 2005
"
#define DRV_VERSION "0.0
7
"
#define DRV_RELDATE "
February 13, 2006
"
enum
{
MTHCA_FLAG_DDR_HIDDEN
=
1
<<
1
,
...
...
drivers/infiniband/ulp/ipoib/ipoib.h
浏览文件 @
f78cf0dc
...
...
@@ -78,6 +78,7 @@ enum {
IPOIB_FLAG_SUBINTERFACE
=
4
,
IPOIB_MCAST_RUN
=
5
,
IPOIB_STOP_REAPER
=
6
,
IPOIB_MCAST_STARTED
=
7
,
IPOIB_MAX_BACKOFF_SECONDS
=
16
,
...
...
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
浏览文件 @
f78cf0dc
...
...
@@ -533,8 +533,10 @@ void ipoib_mcast_join_task(void *dev_ptr)
}
if
(
!
priv
->
broadcast
)
{
priv
->
broadcast
=
ipoib_mcast_alloc
(
dev
,
1
);
if
(
!
priv
->
broadcast
)
{
struct
ipoib_mcast
*
broadcast
;
broadcast
=
ipoib_mcast_alloc
(
dev
,
1
);
if
(
!
broadcast
)
{
ipoib_warn
(
priv
,
"failed to allocate broadcast group
\n
"
);
mutex_lock
(
&
mcast_mutex
);
if
(
test_bit
(
IPOIB_MCAST_RUN
,
&
priv
->
flags
))
...
...
@@ -544,10 +546,11 @@ void ipoib_mcast_join_task(void *dev_ptr)
return
;
}
memcpy
(
priv
->
broadcast
->
mcmember
.
mgid
.
raw
,
priv
->
dev
->
broadcast
+
4
,
spin_lock_irq
(
&
priv
->
lock
);
memcpy
(
broadcast
->
mcmember
.
mgid
.
raw
,
priv
->
dev
->
broadcast
+
4
,
sizeof
(
union
ib_gid
));
priv
->
broadcast
=
broadcast
;
spin_lock_irq
(
&
priv
->
lock
);
__ipoib_mcast_add
(
dev
,
priv
->
broadcast
);
spin_unlock_irq
(
&
priv
->
lock
);
}
...
...
@@ -601,6 +604,10 @@ int ipoib_mcast_start_thread(struct net_device *dev)
queue_work
(
ipoib_workqueue
,
&
priv
->
mcast_task
);
mutex_unlock
(
&
mcast_mutex
);
spin_lock_irq
(
&
priv
->
lock
);
set_bit
(
IPOIB_MCAST_STARTED
,
&
priv
->
flags
);
spin_unlock_irq
(
&
priv
->
lock
);
return
0
;
}
...
...
@@ -611,6 +618,10 @@ int ipoib_mcast_stop_thread(struct net_device *dev, int flush)
ipoib_dbg_mcast
(
priv
,
"stopping multicast thread
\n
"
);
spin_lock_irq
(
&
priv
->
lock
);
clear_bit
(
IPOIB_MCAST_STARTED
,
&
priv
->
flags
);
spin_unlock_irq
(
&
priv
->
lock
);
mutex_lock
(
&
mcast_mutex
);
clear_bit
(
IPOIB_MCAST_RUN
,
&
priv
->
flags
);
cancel_delayed_work
(
&
priv
->
mcast_task
);
...
...
@@ -693,6 +704,14 @@ void ipoib_mcast_send(struct net_device *dev, union ib_gid *mgid,
*/
spin_lock
(
&
priv
->
lock
);
if
(
!
test_bit
(
IPOIB_MCAST_STARTED
,
&
priv
->
flags
)
||
!
priv
->
broadcast
||
!
test_bit
(
IPOIB_MCAST_FLAG_ATTACHED
,
&
priv
->
broadcast
->
flags
))
{
++
priv
->
stats
.
tx_dropped
;
dev_kfree_skb_any
(
skb
);
goto
unlock
;
}
mcast
=
__ipoib_mcast_find
(
dev
,
mgid
);
if
(
!
mcast
)
{
/* Let's create a new send only group now */
...
...
@@ -754,6 +773,7 @@ out:
ipoib_send
(
dev
,
skb
,
mcast
->
ah
,
IB_MULTICAST_QPN
);
}
unlock:
spin_unlock
(
&
priv
->
lock
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录