Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
17859d07
Commit
17859d07
authored
Sep 08, 2010
by
Roland Dreier
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'cxgb3' and 'nes' into for-linus
parents
dc4e96ce
29da03b9
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
26 additions
and
11 deletions
+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
No files found.
drivers/infiniband/hw/nes/nes_cm.c
View file @
17859d07
...
@@ -502,7 +502,9 @@ int schedule_nes_timer(struct nes_cm_node *cm_node, struct sk_buff *skb,
...
@@ -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
)
static
void
nes_retrans_expired
(
struct
nes_cm_node
*
cm_node
)
{
{
struct
iw_cm_id
*
cm_id
=
cm_node
->
cm_id
;
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_SYN_RCVD
:
case
NES_CM_STATE_CLOSING
:
case
NES_CM_STATE_CLOSING
:
rem_ref_cm_node
(
cm_node
->
cm_core
,
cm_node
);
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)
...
@@ -511,7 +513,6 @@ static void nes_retrans_expired(struct nes_cm_node *cm_node)
case
NES_CM_STATE_FIN_WAIT1
:
case
NES_CM_STATE_FIN_WAIT1
:
if
(
cm_node
->
cm_id
)
if
(
cm_node
->
cm_id
)
cm_id
->
rem_ref
(
cm_id
);
cm_id
->
rem_ref
(
cm_id
);
cm_node
->
state
=
NES_CM_STATE_CLOSED
;
send_reset
(
cm_node
,
NULL
);
send_reset
(
cm_node
,
NULL
);
break
;
break
;
default:
default:
...
@@ -1439,9 +1440,6 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
...
@@ -1439,9 +1440,6 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
break
;
break
;
case
NES_CM_STATE_MPAREQ_RCVD
:
case
NES_CM_STATE_MPAREQ_RCVD
:
passive_state
=
atomic_add_return
(
1
,
&
cm_node
->
passive_state
);
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
);
dev_kfree_skb_any
(
skb
);
break
;
break
;
case
NES_CM_STATE_ESTABLISHED
:
case
NES_CM_STATE_ESTABLISHED
:
...
@@ -1456,6 +1454,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
...
@@ -1456,6 +1454,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
case
NES_CM_STATE_CLOSED
:
case
NES_CM_STATE_CLOSED
:
drop_packet
(
skb
);
drop_packet
(
skb
);
break
;
break
;
case
NES_CM_STATE_FIN_WAIT2
:
case
NES_CM_STATE_FIN_WAIT1
:
case
NES_CM_STATE_FIN_WAIT1
:
case
NES_CM_STATE_LAST_ACK
:
case
NES_CM_STATE_LAST_ACK
:
cm_node
->
cm_id
->
rem_ref
(
cm_node
->
cm_id
);
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)
...
@@ -2777,6 +2776,12 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
return
-
EINVAL
;
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 */
/* associate the node with the QP */
nesqp
->
cm_node
=
(
void
*
)
cm_node
;
nesqp
->
cm_node
=
(
void
*
)
cm_node
;
cm_node
->
nesqp
=
nesqp
;
cm_node
->
nesqp
=
nesqp
;
...
@@ -2979,9 +2984,6 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
...
@@ -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, "
printk
(
KERN_ERR
"%s[%u] OFA CM event_handler returned, "
"ret=%d
\n
"
,
__func__
,
__LINE__
,
ret
);
"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
;
return
0
;
}
}
...
...
drivers/infiniband/hw/nes/nes_hw.c
View file @
17859d07
...
@@ -3468,6 +3468,19 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
...
@@ -3468,6 +3468,19 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
return
;
/* Ignore it, wait for close complete */
return
;
/* Ignore it, wait for close complete */
if
(
atomic_inc_return
(
&
nesqp
->
close_timer_started
)
==
1
)
{
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
);
nesqp
->
cm_id
->
add_ref
(
nesqp
->
cm_id
);
schedule_nes_timer
(
nesqp
->
cm_node
,
(
struct
sk_buff
*
)
nesqp
,
schedule_nes_timer
(
nesqp
->
cm_node
,
(
struct
sk_buff
*
)
nesqp
,
NES_TIMER_TYPE_CLOSE
,
1
,
0
);
NES_TIMER_TYPE_CLOSE
,
1
,
0
);
...
@@ -3477,7 +3490,6 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
...
@@ -3477,7 +3490,6 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
nesqp
->
hwqp
.
qp_id
,
atomic_read
(
&
nesqp
->
refcount
),
nesqp
->
hwqp
.
qp_id
,
atomic_read
(
&
nesqp
->
refcount
),
async_event_id
,
nesqp
->
last_aeq
,
tcp_state
);
async_event_id
,
nesqp
->
last_aeq
,
tcp_state
);
}
}
break
;
break
;
case
NES_AEQE_AEID_LLP_CLOSE_COMPLETE
:
case
NES_AEQE_AEID_LLP_CLOSE_COMPLETE
:
if
(
nesqp
->
term_flags
)
{
if
(
nesqp
->
term_flags
)
{
...
...
drivers/infiniband/hw/nes/nes_hw.h
View file @
17859d07
...
@@ -45,6 +45,7 @@
...
@@ -45,6 +45,7 @@
#define NES_PHY_TYPE_KR 9
#define NES_PHY_TYPE_KR 9
#define NES_MULTICAST_PF_MAX 8
#define NES_MULTICAST_PF_MAX 8
#define NES_A0 3
enum
pci_regs
{
enum
pci_regs
{
NES_INT_STAT
=
0x0000
,
NES_INT_STAT
=
0x0000
,
...
...
drivers/infiniband/hw/nes/nes_nic.c
View file @
17859d07
...
@@ -1446,14 +1446,14 @@ static int nes_netdev_set_pauseparam(struct net_device *netdev,
...
@@ -1446,14 +1446,14 @@ static int nes_netdev_set_pauseparam(struct net_device *netdev,
NES_IDX_MAC_TX_CONFIG
+
(
nesdev
->
mac_index
*
0x200
));
NES_IDX_MAC_TX_CONFIG
+
(
nesdev
->
mac_index
*
0x200
));
u32temp
|=
NES_IDX_MAC_TX_CONFIG_ENABLE_PAUSE
;
u32temp
|=
NES_IDX_MAC_TX_CONFIG_ENABLE_PAUSE
;
nes_write_indexed
(
nesdev
,
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
;
nesdev
->
disable_tx_flow_control
=
0
;
}
else
if
((
et_pauseparam
->
tx_pause
==
0
)
&&
(
nesdev
->
disable_tx_flow_control
==
0
))
{
}
else
if
((
et_pauseparam
->
tx_pause
==
0
)
&&
(
nesdev
->
disable_tx_flow_control
==
0
))
{
u32temp
=
nes_read_indexed
(
nesdev
,
u32temp
=
nes_read_indexed
(
nesdev
,
NES_IDX_MAC_TX_CONFIG
+
(
nesdev
->
mac_index
*
0x200
));
NES_IDX_MAC_TX_CONFIG
+
(
nesdev
->
mac_index
*
0x200
));
u32temp
&=
~
NES_IDX_MAC_TX_CONFIG_ENABLE_PAUSE
;
u32temp
&=
~
NES_IDX_MAC_TX_CONFIG_ENABLE_PAUSE
;
nes_write_indexed
(
nesdev
,
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
;
nesdev
->
disable_tx_flow_control
=
1
;
}
}
if
((
et_pauseparam
->
rx_pause
==
1
)
&&
(
nesdev
->
disable_rx_flow_control
==
1
))
{
if
((
et_pauseparam
->
rx_pause
==
1
)
&&
(
nesdev
->
disable_rx_flow_control
==
1
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment