Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
bug2833
cloud-kernel
提交
8c9ea7fe
cloud-kernel
项目概览
bug2833
/
cloud-kernel
与 Fork 源项目一致
Fork自
openanolis / cloud-kernel
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8c9ea7fe
编写于
1月 12, 2009
作者:
R
Roland Dreier
浏览文件
操作
浏览文件
下载
差异文件
Merge branches 'ehca', 'ipoib', 'iser', 'mlx4' and 'nes' into for-next
上级
7ddccb23
50df48f5
f5eb3b76
22e7ef9c
03080e5c
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
46 addition
and
30 deletion
+46
-30
drivers/infiniband/hw/mlx4/main.c
drivers/infiniband/hw/mlx4/main.c
+9
-4
drivers/infiniband/hw/nes/nes_cm.c
drivers/infiniband/hw/nes/nes_cm.c
+9
-3
drivers/infiniband/hw/nes/nes_utils.c
drivers/infiniband/hw/nes/nes_utils.c
+3
-1
drivers/infiniband/ulp/ipoib/ipoib_main.c
drivers/infiniband/ulp/ipoib/ipoib_main.c
+19
-19
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+3
-0
drivers/infiniband/ulp/iser/Kconfig
drivers/infiniband/ulp/iser/Kconfig
+1
-1
drivers/net/mlx4/main.c
drivers/net/mlx4/main.c
+2
-2
未找到文件。
drivers/infiniband/hw/mlx4/main.c
浏览文件 @
8c9ea7fe
...
...
@@ -543,14 +543,21 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
{
static
int
mlx4_ib_version_printed
;
struct
mlx4_ib_dev
*
ibdev
;
int
num_ports
=
0
;
int
i
;
if
(
!
mlx4_ib_version_printed
)
{
printk
(
KERN_INFO
"%s"
,
mlx4_ib_version
);
++
mlx4_ib_version_printed
;
}
mlx4_foreach_port
(
i
,
dev
,
MLX4_PORT_TYPE_IB
)
num_ports
++
;
/* No point in registering a device with no ports... */
if
(
num_ports
==
0
)
return
NULL
;
ibdev
=
(
struct
mlx4_ib_dev
*
)
ib_alloc_device
(
sizeof
*
ibdev
);
if
(
!
ibdev
)
{
dev_err
(
&
dev
->
pdev
->
dev
,
"Device struct alloc failed
\n
"
);
...
...
@@ -574,9 +581,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
ibdev
->
ib_dev
.
owner
=
THIS_MODULE
;
ibdev
->
ib_dev
.
node_type
=
RDMA_NODE_IB_CA
;
ibdev
->
ib_dev
.
local_dma_lkey
=
dev
->
caps
.
reserved_lkey
;
ibdev
->
num_ports
=
0
;
mlx4_foreach_port
(
i
,
dev
,
MLX4_PORT_TYPE_IB
)
ibdev
->
num_ports
++
;
ibdev
->
num_ports
=
num_ports
;
ibdev
->
ib_dev
.
phys_port_cnt
=
ibdev
->
num_ports
;
ibdev
->
ib_dev
.
num_comp_vectors
=
dev
->
caps
.
num_comp_vectors
;
ibdev
->
ib_dev
.
dma_device
=
&
dev
->
pdev
->
dev
;
...
...
drivers/infiniband/hw/nes/nes_cm.c
浏览文件 @
8c9ea7fe
...
...
@@ -778,12 +778,13 @@ static struct nes_cm_node *find_node(struct nes_cm_core *cm_core,
unsigned
long
flags
;
struct
list_head
*
hte
;
struct
nes_cm_node
*
cm_node
;
__be32
tmp_addr
=
cpu_to_be32
(
loc_addr
);
/* get a handle on the hte */
hte
=
&
cm_core
->
connected_nodes
;
nes_debug
(
NES_DBG_CM
,
"Searching for an owner node: %pI4:%x from core %p->%p
\n
"
,
&
loc
_addr
,
loc_port
,
cm_core
,
hte
);
&
tmp
_addr
,
loc_port
,
cm_core
,
hte
);
/* walk list and find cm_node associated with this session ID */
spin_lock_irqsave
(
&
cm_core
->
ht_lock
,
flags
);
...
...
@@ -816,6 +817,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
{
unsigned
long
flags
;
struct
nes_cm_listener
*
listen_node
;
__be32
tmp_addr
=
cpu_to_be32
(
dst_addr
);
/* walk list and find cm_node associated with this session ID */
spin_lock_irqsave
(
&
cm_core
->
listen_list_lock
,
flags
);
...
...
@@ -833,7 +835,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
spin_unlock_irqrestore
(
&
cm_core
->
listen_list_lock
,
flags
);
nes_debug
(
NES_DBG_CM
,
"Unable to find listener for %pI4:%x
\n
"
,
&
dst
_addr
,
dst_port
);
&
tmp
_addr
,
dst_port
);
/* no listener */
return
NULL
;
...
...
@@ -2059,6 +2061,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
struct
tcphdr
*
tcph
;
struct
nes_cm_info
nfo
;
int
skb_handled
=
1
;
__be32
tmp_daddr
,
tmp_saddr
;
if
(
!
skb
)
return
0
;
...
...
@@ -2074,8 +2077,11 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
nfo
.
rem_addr
=
ntohl
(
iph
->
saddr
);
nfo
.
rem_port
=
ntohs
(
tcph
->
source
);
tmp_daddr
=
cpu_to_be32
(
iph
->
daddr
);
tmp_saddr
=
cpu_to_be32
(
iph
->
saddr
);
nes_debug
(
NES_DBG_CM
,
"Received packet: dest=%pI4:0x%04X src=%pI4:0x%04X
\n
"
,
&
iph
->
daddr
,
tcph
->
dest
,
&
iph
->
saddr
,
tcph
->
source
);
&
tmp_daddr
,
tcph
->
dest
,
&
tmp_
saddr
,
tcph
->
source
);
do
{
cm_node
=
find_node
(
cm_core
,
...
...
drivers/infiniband/hw/nes/nes_utils.c
浏览文件 @
8c9ea7fe
...
...
@@ -655,6 +655,7 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti
struct
nes_adapter
*
nesadapter
=
nesdev
->
nesadapter
;
int
arp_index
;
int
err
=
0
;
__be32
tmp_addr
;
for
(
arp_index
=
0
;
(
u32
)
arp_index
<
nesadapter
->
arp_table_size
;
arp_index
++
)
{
if
(
nesadapter
->
arp_table
[
arp_index
].
ip_addr
==
ip_addr
)
...
...
@@ -682,8 +683,9 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti
/* DELETE or RESOLVE */
if
(
arp_index
==
nesadapter
->
arp_table_size
)
{
tmp_addr
=
cpu_to_be32
(
ip_addr
);
nes_debug
(
NES_DBG_NETDEV
,
"MAC for %pI4 not in ARP table - cannot %s
\n
"
,
&
i
p_addr
,
action
==
NES_ARP_RESOLVE
?
"resolve"
:
"delete"
);
&
tm
p_addr
,
action
==
NES_ARP_RESOLVE
?
"resolve"
:
"delete"
);
return
-
1
;
}
...
...
drivers/infiniband/ulp/ipoib/ipoib_main.c
浏览文件 @
8c9ea7fe
...
...
@@ -711,26 +711,26 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
neigh
=
*
to_ipoib_neigh
(
skb
->
dst
->
neighbour
);
if
(
neigh
->
ah
)
if
(
unlikely
((
memcmp
(
&
neigh
->
dgid
.
raw
,
skb
->
dst
->
neighbour
->
ha
+
4
,
sizeof
(
union
ib_gid
)))
||
(
neigh
->
dev
!=
dev
)))
{
spin_lock_irqsave
(
&
priv
->
lock
,
flags
);
/*
* It's safe to call ipoib_put_ah() inside
* priv->lock here, because we know that
* path->ah will always hold one more reference,
* so ipoib_put_ah() will never do more than
* decrement the ref count.
*/
if
(
unlikely
((
memcmp
(
&
neigh
->
dgid
.
raw
,
skb
->
dst
->
neighbour
->
ha
+
4
,
sizeof
(
union
ib_gid
)))
||
(
neigh
->
dev
!=
dev
)))
{
spin_lock_irqsave
(
&
priv
->
lock
,
flags
);
/*
* It's safe to call ipoib_put_ah() inside
* priv->lock here, because we know that
* path->ah will always hold one more reference,
* so ipoib_put_ah() will never do more than
* decrement the ref count.
*/
if
(
neigh
->
ah
)
ipoib_put_ah
(
neigh
->
ah
);
list_del
(
&
neigh
->
list
);
ipoib_neigh_free
(
dev
,
neigh
);
spin_unlock_irqrestore
(
&
priv
->
lock
,
flags
);
ipoib_path_lookup
(
skb
,
dev
);
return
NETDEV_TX_OK
;
}
list_del
(
&
neigh
->
list
);
ipoib_neigh_free
(
dev
,
neigh
);
spin_unlock_irqrestore
(
&
priv
->
lock
,
flags
);
ipoib_path_lookup
(
skb
,
dev
);
return
NETDEV_TX_OK
;
}
if
(
ipoib_cm_get
(
neigh
))
{
if
(
ipoib_cm_up
(
neigh
))
{
...
...
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
浏览文件 @
8c9ea7fe
...
...
@@ -529,6 +529,9 @@ void ipoib_mcast_join_task(struct work_struct *work)
if
(
!
priv
->
broadcast
)
{
struct
ipoib_mcast
*
broadcast
;
if
(
!
test_bit
(
IPOIB_FLAG_ADMIN_UP
,
&
priv
->
flags
))
return
;
broadcast
=
ipoib_mcast_alloc
(
dev
,
1
);
if
(
!
broadcast
)
{
ipoib_warn
(
priv
,
"failed to allocate broadcast group
\n
"
);
...
...
drivers/infiniband/ulp/iser/Kconfig
浏览文件 @
8c9ea7fe
config INFINIBAND_ISER
tristate "iSCSI Extensions for RDMA (iSER)"
depends on SCSI && INET
depends on SCSI && INET
&& INFINIBAND_ADDR_TRANS
select SCSI_ISCSI_ATTRS
---help---
Support for the iSCSI Extensions for RDMA (iSER) Protocol
...
...
drivers/net/mlx4/main.c
浏览文件 @
8c9ea7fe
...
...
@@ -912,8 +912,8 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
int
i
;
if
(
msi_x
)
{
nreq
=
min
(
dev
->
caps
.
num_eqs
-
dev
->
caps
.
reserved_eqs
,
num_possible_cpus
()
+
1
);
nreq
=
min
_t
(
int
,
dev
->
caps
.
num_eqs
-
dev
->
caps
.
reserved_eqs
,
num_possible_cpus
()
+
1
);
entries
=
kcalloc
(
nreq
,
sizeof
*
entries
,
GFP_KERNEL
);
if
(
!
entries
)
goto
no_msi
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录