Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
63b3ced0
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
63b3ced0
编写于
1月 31, 2006
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
上级
28e0cf22
f9e61929
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
28 addition
and
6 deletion
+28
-6
drivers/infiniband/core/sa_query.c
drivers/infiniband/core/sa_query.c
+2
-0
drivers/infiniband/core/uverbs_main.c
drivers/infiniband/core/uverbs_main.c
+1
-0
drivers/infiniband/hw/mthca/mthca_av.c
drivers/infiniband/hw/mthca/mthca_av.c
+1
-1
drivers/infiniband/ulp/ipoib/ipoib_main.c
drivers/infiniband/ulp/ipoib/ipoib_main.c
+2
-2
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+22
-3
未找到文件。
drivers/infiniband/core/sa_query.c
浏览文件 @
63b3ced0
...
@@ -956,6 +956,8 @@ static void ib_sa_remove_one(struct ib_device *device)
...
@@ -956,6 +956,8 @@ static void ib_sa_remove_one(struct ib_device *device)
ib_unregister_event_handler
(
&
sa_dev
->
event_handler
);
ib_unregister_event_handler
(
&
sa_dev
->
event_handler
);
flush_scheduled_work
();
for
(
i
=
0
;
i
<=
sa_dev
->
end_port
-
sa_dev
->
start_port
;
++
i
)
{
for
(
i
=
0
;
i
<=
sa_dev
->
end_port
-
sa_dev
->
start_port
;
++
i
)
{
ib_unregister_mad_agent
(
sa_dev
->
port
[
i
].
agent
);
ib_unregister_mad_agent
(
sa_dev
->
port
[
i
].
agent
);
kref_put
(
&
sa_dev
->
port
[
i
].
sm_ah
->
ref
,
free_sm_ah
);
kref_put
(
&
sa_dev
->
port
[
i
].
sm_ah
->
ref
,
free_sm_ah
);
...
...
drivers/infiniband/core/uverbs_main.c
浏览文件 @
63b3ced0
...
@@ -902,6 +902,7 @@ static void __exit ib_uverbs_cleanup(void)
...
@@ -902,6 +902,7 @@ static void __exit ib_uverbs_cleanup(void)
unregister_filesystem
(
&
uverbs_event_fs
);
unregister_filesystem
(
&
uverbs_event_fs
);
class_destroy
(
uverbs_class
);
class_destroy
(
uverbs_class
);
unregister_chrdev_region
(
IB_UVERBS_BASE_DEV
,
IB_UVERBS_MAX_DEVICES
);
unregister_chrdev_region
(
IB_UVERBS_BASE_DEV
,
IB_UVERBS_MAX_DEVICES
);
flush_scheduled_work
();
idr_destroy
(
&
ib_uverbs_pd_idr
);
idr_destroy
(
&
ib_uverbs_pd_idr
);
idr_destroy
(
&
ib_uverbs_mr_idr
);
idr_destroy
(
&
ib_uverbs_mr_idr
);
idr_destroy
(
&
ib_uverbs_mw_idr
);
idr_destroy
(
&
ib_uverbs_mw_idr
);
...
...
drivers/infiniband/hw/mthca/mthca_av.c
浏览文件 @
63b3ced0
...
@@ -184,7 +184,7 @@ int mthca_read_ah(struct mthca_dev *dev, struct mthca_ah *ah,
...
@@ -184,7 +184,7 @@ int mthca_read_ah(struct mthca_dev *dev, struct mthca_ah *ah,
ah
->
av
->
sl_tclass_flowlabel
&
cpu_to_be32
(
0xfffff
);
ah
->
av
->
sl_tclass_flowlabel
&
cpu_to_be32
(
0xfffff
);
ib_get_cached_gid
(
&
dev
->
ib_dev
,
ib_get_cached_gid
(
&
dev
->
ib_dev
,
be32_to_cpu
(
ah
->
av
->
port_pd
)
>>
24
,
be32_to_cpu
(
ah
->
av
->
port_pd
)
>>
24
,
ah
->
av
->
gid_index
,
ah
->
av
->
gid_index
%
dev
->
limits
.
gid_table_len
,
&
header
->
grh
.
source_gid
);
&
header
->
grh
.
source_gid
);
memcpy
(
header
->
grh
.
destination_gid
.
raw
,
memcpy
(
header
->
grh
.
destination_gid
.
raw
,
ah
->
av
->
dgid
,
16
);
ah
->
av
->
dgid
,
16
);
...
...
drivers/infiniband/ulp/ipoib/ipoib_main.c
浏览文件 @
63b3ced0
...
@@ -505,7 +505,7 @@ static void neigh_add_path(struct sk_buff *skb, struct net_device *dev)
...
@@ -505,7 +505,7 @@ static void neigh_add_path(struct sk_buff *skb, struct net_device *dev)
list_add_tail
(
&
neigh
->
list
,
&
path
->
neigh_list
);
list_add_tail
(
&
neigh
->
list
,
&
path
->
neigh_list
);
if
(
path
->
pathrec
.
dlid
)
{
if
(
path
->
ah
)
{
kref_get
(
&
path
->
ah
->
ref
);
kref_get
(
&
path
->
ah
->
ref
);
neigh
->
ah
=
path
->
ah
;
neigh
->
ah
=
path
->
ah
;
...
@@ -591,7 +591,7 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
...
@@ -591,7 +591,7 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
return
;
return
;
}
}
if
(
path
->
pathrec
.
dlid
)
{
if
(
path
->
ah
)
{
ipoib_dbg
(
priv
,
"Send unicast ARP to %04x
\n
"
,
ipoib_dbg
(
priv
,
"Send unicast ARP to %04x
\n
"
,
be16_to_cpu
(
path
->
pathrec
.
dlid
));
be16_to_cpu
(
path
->
pathrec
.
dlid
));
...
...
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
浏览文件 @
63b3ced0
...
@@ -97,6 +97,7 @@ static void ipoib_mcast_free(struct ipoib_mcast *mcast)
...
@@ -97,6 +97,7 @@ static void ipoib_mcast_free(struct ipoib_mcast *mcast)
struct
ipoib_dev_priv
*
priv
=
netdev_priv
(
dev
);
struct
ipoib_dev_priv
*
priv
=
netdev_priv
(
dev
);
struct
ipoib_neigh
*
neigh
,
*
tmp
;
struct
ipoib_neigh
*
neigh
,
*
tmp
;
unsigned
long
flags
;
unsigned
long
flags
;
int
tx_dropped
=
0
;
ipoib_dbg_mcast
(
netdev_priv
(
dev
),
ipoib_dbg_mcast
(
netdev_priv
(
dev
),
"deleting multicast group "
IPOIB_GID_FMT
"
\n
"
,
"deleting multicast group "
IPOIB_GID_FMT
"
\n
"
,
...
@@ -123,8 +124,14 @@ static void ipoib_mcast_free(struct ipoib_mcast *mcast)
...
@@ -123,8 +124,14 @@ static void ipoib_mcast_free(struct ipoib_mcast *mcast)
if
(
mcast
->
ah
)
if
(
mcast
->
ah
)
ipoib_put_ah
(
mcast
->
ah
);
ipoib_put_ah
(
mcast
->
ah
);
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
{
++
tx_dropped
;
dev_kfree_skb_any
(
skb_dequeue
(
&
mcast
->
pkt_queue
));
dev_kfree_skb_any
(
skb_dequeue
(
&
mcast
->
pkt_queue
));
}
spin_lock_irqsave
(
&
priv
->
tx_lock
,
flags
);
priv
->
stats
.
tx_dropped
+=
tx_dropped
;
spin_unlock_irqrestore
(
&
priv
->
tx_lock
,
flags
);
kfree
(
mcast
);
kfree
(
mcast
);
}
}
...
@@ -276,8 +283,10 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
...
@@ -276,8 +283,10 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
}
}
/* actually send any queued packets */
/* actually send any queued packets */
spin_lock_irq
(
&
priv
->
tx_lock
);
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
{
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
{
struct
sk_buff
*
skb
=
skb_dequeue
(
&
mcast
->
pkt_queue
);
struct
sk_buff
*
skb
=
skb_dequeue
(
&
mcast
->
pkt_queue
);
spin_unlock_irq
(
&
priv
->
tx_lock
);
skb
->
dev
=
dev
;
skb
->
dev
=
dev
;
...
@@ -288,7 +297,9 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
...
@@ -288,7 +297,9 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
if
(
dev_queue_xmit
(
skb
))
if
(
dev_queue_xmit
(
skb
))
ipoib_warn
(
priv
,
"dev_queue_xmit failed to requeue packet
\n
"
);
ipoib_warn
(
priv
,
"dev_queue_xmit failed to requeue packet
\n
"
);
spin_lock_irq
(
&
priv
->
tx_lock
);
}
}
spin_unlock_irq
(
&
priv
->
tx_lock
);
return
0
;
return
0
;
}
}
...
@@ -300,6 +311,7 @@ ipoib_mcast_sendonly_join_complete(int status,
...
@@ -300,6 +311,7 @@ ipoib_mcast_sendonly_join_complete(int status,
{
{
struct
ipoib_mcast
*
mcast
=
mcast_ptr
;
struct
ipoib_mcast
*
mcast
=
mcast_ptr
;
struct
net_device
*
dev
=
mcast
->
dev
;
struct
net_device
*
dev
=
mcast
->
dev
;
struct
ipoib_dev_priv
*
priv
=
netdev_priv
(
dev
);
if
(
!
status
)
if
(
!
status
)
ipoib_mcast_join_finish
(
mcast
,
mcmember
);
ipoib_mcast_join_finish
(
mcast
,
mcmember
);
...
@@ -310,8 +322,12 @@ ipoib_mcast_sendonly_join_complete(int status,
...
@@ -310,8 +322,12 @@ ipoib_mcast_sendonly_join_complete(int status,
IPOIB_GID_ARG
(
mcast
->
mcmember
.
mgid
),
status
);
IPOIB_GID_ARG
(
mcast
->
mcmember
.
mgid
),
status
);
/* Flush out any queued packets */
/* Flush out any queued packets */
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
spin_lock_irq
(
&
priv
->
tx_lock
);
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
{
++
priv
->
stats
.
tx_dropped
;
dev_kfree_skb_any
(
skb_dequeue
(
&
mcast
->
pkt_queue
));
dev_kfree_skb_any
(
skb_dequeue
(
&
mcast
->
pkt_queue
));
}
spin_unlock_irq
(
&
priv
->
tx_lock
);
/* Clear the busy flag so we try again */
/* Clear the busy flag so we try again */
clear_bit
(
IPOIB_MCAST_FLAG_BUSY
,
&
mcast
->
flags
);
clear_bit
(
IPOIB_MCAST_FLAG_BUSY
,
&
mcast
->
flags
);
...
@@ -687,6 +703,7 @@ void ipoib_mcast_send(struct net_device *dev, union ib_gid *mgid,
...
@@ -687,6 +703,7 @@ void ipoib_mcast_send(struct net_device *dev, union ib_gid *mgid,
if
(
!
mcast
)
{
if
(
!
mcast
)
{
ipoib_warn
(
priv
,
"unable to allocate memory for "
ipoib_warn
(
priv
,
"unable to allocate memory for "
"multicast structure
\n
"
);
"multicast structure
\n
"
);
++
priv
->
stats
.
tx_dropped
;
dev_kfree_skb_any
(
skb
);
dev_kfree_skb_any
(
skb
);
goto
out
;
goto
out
;
}
}
...
@@ -700,8 +717,10 @@ void ipoib_mcast_send(struct net_device *dev, union ib_gid *mgid,
...
@@ -700,8 +717,10 @@ void ipoib_mcast_send(struct net_device *dev, union ib_gid *mgid,
if
(
!
mcast
->
ah
)
{
if
(
!
mcast
->
ah
)
{
if
(
skb_queue_len
(
&
mcast
->
pkt_queue
)
<
IPOIB_MAX_MCAST_QUEUE
)
if
(
skb_queue_len
(
&
mcast
->
pkt_queue
)
<
IPOIB_MAX_MCAST_QUEUE
)
skb_queue_tail
(
&
mcast
->
pkt_queue
,
skb
);
skb_queue_tail
(
&
mcast
->
pkt_queue
,
skb
);
else
else
{
++
priv
->
stats
.
tx_dropped
;
dev_kfree_skb_any
(
skb
);
dev_kfree_skb_any
(
skb
);
}
if
(
mcast
->
query
)
if
(
mcast
->
query
)
ipoib_dbg_mcast
(
priv
,
"no address vector, "
ipoib_dbg_mcast
(
priv
,
"no address vector, "
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录