diff options
Diffstat (limited to 'net/tipc')
| -rw-r--r-- | net/tipc/link.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c index a4cf364316de..14f09b3cb87c 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c | |||
| @@ -464,10 +464,11 @@ void tipc_link_reset(struct tipc_link *l_ptr) | |||
| 464 | /* Clean up all queues, except inputq: */ | 464 | /* Clean up all queues, except inputq: */ |
| 465 | __skb_queue_purge(&l_ptr->outqueue); | 465 | __skb_queue_purge(&l_ptr->outqueue); |
| 466 | __skb_queue_purge(&l_ptr->deferred_queue); | 466 | __skb_queue_purge(&l_ptr->deferred_queue); |
| 467 | skb_queue_splice_init(&l_ptr->wakeupq, &l_ptr->inputq); | 467 | if (!owner->inputq) |
| 468 | if (!skb_queue_empty(&l_ptr->inputq)) | 468 | owner->inputq = &l_ptr->inputq; |
| 469 | skb_queue_splice_init(&l_ptr->wakeupq, owner->inputq); | ||
| 470 | if (!skb_queue_empty(owner->inputq)) | ||
| 469 | owner->action_flags |= TIPC_MSG_EVT; | 471 | owner->action_flags |= TIPC_MSG_EVT; |
| 470 | owner->inputq = &l_ptr->inputq; | ||
| 471 | l_ptr->next_out = NULL; | 472 | l_ptr->next_out = NULL; |
| 472 | l_ptr->unacked_window = 0; | 473 | l_ptr->unacked_window = 0; |
| 473 | l_ptr->checkpoint = 1; | 474 | l_ptr->checkpoint = 1; |
