diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index a3bdf5c7f085..a5be053cac57 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c @@ -366,16 +366,12 @@ static int tipc_reset_bearer(struct tipc_bearer *b_ptr) */ static void bearer_disable(struct tipc_bearer *b_ptr) { - struct tipc_link *l_ptr; - struct tipc_link *temp_l_ptr; struct tipc_link_req *temp_req; pr_info("Disabling bearer <%s>\n", b_ptr->name); spin_lock_bh(&b_ptr->lock); b_ptr->media->disable_media(b_ptr); - list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { - tipc_link_delete(l_ptr); - } + tipc_link_delete_list(b_ptr); temp_req = b_ptr->link_req; b_ptr->link_req = NULL; spin_unlock_bh(&b_ptr->lock); diff --git a/net/tipc/link.c b/net/tipc/link.c index 3ff34e8a37d7..424e9f3acd81 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c @@ -313,6 +313,15 @@ void tipc_link_delete(struct tipc_link *l_ptr) kfree(l_ptr); } +void tipc_link_delete_list(struct tipc_bearer *b_ptr) +{ + struct tipc_link *l_ptr; + struct tipc_link *temp_l_ptr; + + list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { + tipc_link_delete(l_ptr); + } +} /** * link_schedule_port - schedule port for deferred sending diff --git a/net/tipc/link.h b/net/tipc/link.h index 73beecb369e2..994ebd16ddc3 100644 --- a/net/tipc/link.h +++ b/net/tipc/link.h @@ -219,6 +219,7 @@ void tipc_link_delete(struct tipc_link *l_ptr); void tipc_link_failover_send_queue(struct tipc_link *l_ptr); void tipc_link_dup_send_queue(struct tipc_link *l_ptr, struct tipc_link *dest); +void tipc_link_delete_list(struct tipc_bearer *b_ptr); void tipc_link_reset_fragments(struct tipc_link *l_ptr); int tipc_link_is_up(struct tipc_link *l_ptr); int tipc_link_is_active(struct tipc_link *l_ptr);