Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
17859d07
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
17859d07
编写于
14年前
作者:
R
Roland Dreier
浏览文件
操作
浏览文件
下载
差异文件
Merge branches 'cxgb3' and 'nes' into for-linus
上级
dc4e96ce
29da03b9
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
26 addition
and
11 deletion
+26
-11
drivers/infiniband/hw/nes/nes_cm.c
drivers/infiniband/hw/nes/nes_cm.c
+10
-8
drivers/infiniband/hw/nes/nes_hw.c
drivers/infiniband/hw/nes/nes_hw.c
+13
-1
drivers/infiniband/hw/nes/nes_hw.h
drivers/infiniband/hw/nes/nes_hw.h
+1
-0
drivers/infiniband/hw/nes/nes_nic.c
drivers/infiniband/hw/nes/nes_nic.c
+2
-2
未找到文件。
drivers/infiniband/hw/nes/nes_cm.c
浏览文件 @
17859d07
...
...
@@ -502,7 +502,9 @@ int schedule_nes_timer(struct nes_cm_node *cm_node, struct sk_buff *skb,
static
void
nes_retrans_expired
(
struct
nes_cm_node
*
cm_node
)
{
struct
iw_cm_id
*
cm_id
=
cm_node
->
cm_id
;
switch
(
cm_node
->
state
)
{
enum
nes_cm_node_state
state
=
cm_node
->
state
;
cm_node
->
state
=
NES_CM_STATE_CLOSED
;
switch
(
state
)
{
case
NES_CM_STATE_SYN_RCVD
:
case
NES_CM_STATE_CLOSING
:
rem_ref_cm_node
(
cm_node
->
cm_core
,
cm_node
);
...
...
@@ -511,7 +513,6 @@ static void nes_retrans_expired(struct nes_cm_node *cm_node)
case
NES_CM_STATE_FIN_WAIT1
:
if
(
cm_node
->
cm_id
)
cm_id
->
rem_ref
(
cm_id
);
cm_node
->
state
=
NES_CM_STATE_CLOSED
;
send_reset
(
cm_node
,
NULL
);
break
;
default:
...
...
@@ -1439,9 +1440,6 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
break
;
case
NES_CM_STATE_MPAREQ_RCVD
:
passive_state
=
atomic_add_return
(
1
,
&
cm_node
->
passive_state
);
if
(
passive_state
==
NES_SEND_RESET_EVENT
)
create_event
(
cm_node
,
NES_CM_EVENT_RESET
);
cm_node
->
state
=
NES_CM_STATE_CLOSED
;
dev_kfree_skb_any
(
skb
);
break
;
case
NES_CM_STATE_ESTABLISHED
:
...
...
@@ -1456,6 +1454,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
case
NES_CM_STATE_CLOSED
:
drop_packet
(
skb
);
break
;
case
NES_CM_STATE_FIN_WAIT2
:
case
NES_CM_STATE_FIN_WAIT1
:
case
NES_CM_STATE_LAST_ACK
:
cm_node
->
cm_id
->
rem_ref
(
cm_node
->
cm_id
);
...
...
@@ -2777,6 +2776,12 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
return
-
EINVAL
;
}
passive_state
=
atomic_add_return
(
1
,
&
cm_node
->
passive_state
);
if
(
passive_state
==
NES_SEND_RESET_EVENT
)
{
rem_ref_cm_node
(
cm_node
->
cm_core
,
cm_node
);
return
-
ECONNRESET
;
}
/* associate the node with the QP */
nesqp
->
cm_node
=
(
void
*
)
cm_node
;
cm_node
->
nesqp
=
nesqp
;
...
...
@@ -2979,9 +2984,6 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
printk
(
KERN_ERR
"%s[%u] OFA CM event_handler returned, "
"ret=%d
\n
"
,
__func__
,
__LINE__
,
ret
);
passive_state
=
atomic_add_return
(
1
,
&
cm_node
->
passive_state
);
if
(
passive_state
==
NES_SEND_RESET_EVENT
)
create_event
(
cm_node
,
NES_CM_EVENT_RESET
);
return
0
;
}
...
...
This diff is collapsed.
Click to expand it.
drivers/infiniband/hw/nes/nes_hw.c
浏览文件 @
17859d07
...
...
@@ -3468,6 +3468,19 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
return
;
/* Ignore it, wait for close complete */
if
(
atomic_inc_return
(
&
nesqp
->
close_timer_started
)
==
1
)
{
if
((
tcp_state
==
NES_AEQE_TCP_STATE_CLOSE_WAIT
)
&&
(
nesqp
->
ibqp_state
==
IB_QPS_RTS
)
&&
((
nesadapter
->
eeprom_version
>>
16
)
!=
NES_A0
))
{
spin_lock_irqsave
(
&
nesqp
->
lock
,
flags
);
nesqp
->
hw_iwarp_state
=
iwarp_state
;
nesqp
->
hw_tcp_state
=
tcp_state
;
nesqp
->
last_aeq
=
async_event_id
;
next_iwarp_state
=
NES_CQP_QP_IWARP_STATE_CLOSING
;
nesqp
->
hw_iwarp_state
=
NES_AEQE_IWARP_STATE_CLOSING
;
spin_unlock_irqrestore
(
&
nesqp
->
lock
,
flags
);
nes_hw_modify_qp
(
nesdev
,
nesqp
,
next_iwarp_state
,
0
,
0
);
nes_cm_disconn
(
nesqp
);
}
nesqp
->
cm_id
->
add_ref
(
nesqp
->
cm_id
);
schedule_nes_timer
(
nesqp
->
cm_node
,
(
struct
sk_buff
*
)
nesqp
,
NES_TIMER_TYPE_CLOSE
,
1
,
0
);
...
...
@@ -3477,7 +3490,6 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
nesqp
->
hwqp
.
qp_id
,
atomic_read
(
&
nesqp
->
refcount
),
async_event_id
,
nesqp
->
last_aeq
,
tcp_state
);
}
break
;
case
NES_AEQE_AEID_LLP_CLOSE_COMPLETE
:
if
(
nesqp
->
term_flags
)
{
...
...
This diff is collapsed.
Click to expand it.
drivers/infiniband/hw/nes/nes_hw.h
浏览文件 @
17859d07
...
...
@@ -45,6 +45,7 @@
#define NES_PHY_TYPE_KR 9
#define NES_MULTICAST_PF_MAX 8
#define NES_A0 3
enum
pci_regs
{
NES_INT_STAT
=
0x0000
,
...
...
This diff is collapsed.
Click to expand it.
drivers/infiniband/hw/nes/nes_nic.c
浏览文件 @
17859d07
...
...
@@ -1446,14 +1446,14 @@ static int nes_netdev_set_pauseparam(struct net_device *netdev,
NES_IDX_MAC_TX_CONFIG
+
(
nesdev
->
mac_index
*
0x200
));
u32temp
|=
NES_IDX_MAC_TX_CONFIG_ENABLE_PAUSE
;
nes_write_indexed
(
nesdev
,
NES_IDX_MAC_TX_CONFIG
_ENABLE_PAUSE
+
(
nesdev
->
mac_index
*
0x200
),
u32temp
);
NES_IDX_MAC_TX_CONFIG
+
(
nesdev
->
mac_index
*
0x200
),
u32temp
);
nesdev
->
disable_tx_flow_control
=
0
;
}
else
if
((
et_pauseparam
->
tx_pause
==
0
)
&&
(
nesdev
->
disable_tx_flow_control
==
0
))
{
u32temp
=
nes_read_indexed
(
nesdev
,
NES_IDX_MAC_TX_CONFIG
+
(
nesdev
->
mac_index
*
0x200
));
u32temp
&=
~
NES_IDX_MAC_TX_CONFIG_ENABLE_PAUSE
;
nes_write_indexed
(
nesdev
,
NES_IDX_MAC_TX_CONFIG
_ENABLE_PAUSE
+
(
nesdev
->
mac_index
*
0x200
),
u32temp
);
NES_IDX_MAC_TX_CONFIG
+
(
nesdev
->
mac_index
*
0x200
),
u32temp
);
nesdev
->
disable_tx_flow_control
=
1
;
}
if
((
et_pauseparam
->
rx_pause
==
1
)
&&
(
nesdev
->
disable_rx_flow_control
==
1
))
{
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部