diff options
Diffstat (limited to 'net/tipc')
| -rw-r--r-- | net/tipc/link.c | 11 | ||||
| -rw-r--r-- | net/tipc/link.h | 7 | 
2 files changed, 7 insertions, 11 deletions
| diff --git a/net/tipc/link.c b/net/tipc/link.c index ac26f8a657d9..3d73144a1ccc 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c | |||
| @@ -488,10 +488,11 @@ static void link_state_event(struct tipc_link *l_ptr, unsigned int event) | |||
| 488 | if (!l_ptr->started && (event != STARTING_EVT)) | 488 | if (!l_ptr->started && (event != STARTING_EVT)) | 
| 489 | return; /* Not yet. */ | 489 | return; /* Not yet. */ | 
| 490 | 490 | ||
| 491 | if (link_blocked(l_ptr)) { | 491 | /* Check whether changeover is going on */ | 
| 492 | if (l_ptr->exp_msg_count) { | ||
| 492 | if (event == TIMEOUT_EVT) | 493 | if (event == TIMEOUT_EVT) | 
| 493 | link_set_timer(l_ptr, cont_intv); | 494 | link_set_timer(l_ptr, cont_intv); | 
| 494 | return; /* Changeover going on */ | 495 | return; | 
| 495 | } | 496 | } | 
| 496 | 497 | ||
| 497 | switch (l_ptr->state) { | 498 | switch (l_ptr->state) { | 
| @@ -1731,7 +1732,8 @@ void tipc_link_send_proto_msg(struct tipc_link *l_ptr, u32 msg_typ, | |||
| 1731 | l_ptr->proto_msg_queue = NULL; | 1732 | l_ptr->proto_msg_queue = NULL; | 
| 1732 | } | 1733 | } | 
| 1733 | 1734 | ||
| 1734 | if (link_blocked(l_ptr)) | 1735 | /* Don't send protocol message during link changeover */ | 
| 1736 | if (l_ptr->exp_msg_count) | ||
| 1735 | return; | 1737 | return; | 
| 1736 | 1738 | ||
| 1737 | /* Abort non-RESET send if communication with node is prohibited */ | 1739 | /* Abort non-RESET send if communication with node is prohibited */ | 
| @@ -1824,7 +1826,8 @@ static void link_recv_proto_msg(struct tipc_link *l_ptr, struct sk_buff *buf) | |||
| 1824 | u32 msg_tol; | 1826 | u32 msg_tol; | 
| 1825 | struct tipc_msg *msg = buf_msg(buf); | 1827 | struct tipc_msg *msg = buf_msg(buf); | 
| 1826 | 1828 | ||
| 1827 | if (link_blocked(l_ptr)) | 1829 | /* Discard protocol message during link changeover */ | 
| 1830 | if (l_ptr->exp_msg_count) | ||
| 1828 | goto exit; | 1831 | goto exit; | 
| 1829 | 1832 | ||
| 1830 | /* record unnumbered packet arrival (force mismatch on next timeout) */ | 1833 | /* record unnumbered packet arrival (force mismatch on next timeout) */ | 
| diff --git a/net/tipc/link.h b/net/tipc/link.h index 8a6c1026644d..424b1dfe436b 100644 --- a/net/tipc/link.h +++ b/net/tipc/link.h | |||
| @@ -112,7 +112,6 @@ struct tipc_stats { | |||
| 112 | * @continuity_interval: link continuity testing interval [in ms] | 112 | * @continuity_interval: link continuity testing interval [in ms] | 
| 113 | * @abort_limit: # of unacknowledged continuity probes needed to reset link | 113 | * @abort_limit: # of unacknowledged continuity probes needed to reset link | 
| 114 | * @state: current state of link FSM | 114 | * @state: current state of link FSM | 
| 115 | * @blocked: indicates if link has been administratively blocked | ||
| 116 | * @fsm_msg_cnt: # of protocol messages link FSM has sent in current state | 115 | * @fsm_msg_cnt: # of protocol messages link FSM has sent in current state | 
| 117 | * @proto_msg: template for control messages generated by link | 116 | * @proto_msg: template for control messages generated by link | 
| 118 | * @pmsg: convenience pointer to "proto_msg" field | 117 | * @pmsg: convenience pointer to "proto_msg" field | 
| @@ -162,7 +161,6 @@ struct tipc_link { | |||
| 162 | u32 continuity_interval; | 161 | u32 continuity_interval; | 
| 163 | u32 abort_limit; | 162 | u32 abort_limit; | 
| 164 | int state; | 163 | int state; | 
| 165 | int blocked; | ||
| 166 | u32 fsm_msg_cnt; | 164 | u32 fsm_msg_cnt; | 
| 167 | struct { | 165 | struct { | 
| 168 | unchar hdr[INT_H_SIZE]; | 166 | unchar hdr[INT_H_SIZE]; | 
| @@ -312,11 +310,6 @@ static inline int link_reset_reset(struct tipc_link *l_ptr) | |||
| 312 | return l_ptr->state == RESET_RESET; | 310 | return l_ptr->state == RESET_RESET; | 
| 313 | } | 311 | } | 
| 314 | 312 | ||
| 315 | static inline int link_blocked(struct tipc_link *l_ptr) | ||
| 316 | { | ||
| 317 | return l_ptr->exp_msg_count || l_ptr->blocked; | ||
| 318 | } | ||
| 319 | |||
| 320 | static inline int link_congested(struct tipc_link *l_ptr) | 313 | static inline int link_congested(struct tipc_link *l_ptr) | 
| 321 | { | 314 | { | 
| 322 | return l_ptr->out_queue_size >= l_ptr->queue_limit[0]; | 315 | return l_ptr->out_queue_size >= l_ptr->queue_limit[0]; | 
