diff options
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r-- | net/tipc/link.c | 11 |
1 files changed, 7 insertions, 4 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) */ |