diff --git a/net/tipc/port.c b/net/tipc/port.c index b9c8c6b9e94fdf87c931cdc3c409a373a8043bdc..c1a1a76759b59259e87a7b12bc190e6c9fcc07cc 100644 --- a/net/tipc/port.c +++ b/net/tipc/port.c @@ -505,8 +505,13 @@ static void port_timeout(unsigned long ref) struct port *p_ptr = tipc_port_lock(ref); struct sk_buff *buf = NULL; - if (!p_ptr || !p_ptr->publ.connected) + if (!p_ptr) + return; + + if (!p_ptr->publ.connected) { + tipc_port_unlock(p_ptr); return; + } /* Last probe answered ? */ if (p_ptr->probing_state == PROBING) {