|
@@ -642,9 +642,13 @@ void tipc_mon_delete(struct net *net, int bearer_id)
|
|
{
|
|
{
|
|
struct tipc_net *tn = tipc_net(net);
|
|
struct tipc_net *tn = tipc_net(net);
|
|
struct tipc_monitor *mon = tipc_monitor(net, bearer_id);
|
|
struct tipc_monitor *mon = tipc_monitor(net, bearer_id);
|
|
- struct tipc_peer *self = get_self(net, bearer_id);
|
|
|
|
|
|
+ struct tipc_peer *self;
|
|
struct tipc_peer *peer, *tmp;
|
|
struct tipc_peer *peer, *tmp;
|
|
|
|
|
|
|
|
+ if (!mon)
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ self = get_self(net, bearer_id);
|
|
write_lock_bh(&mon->lock);
|
|
write_lock_bh(&mon->lock);
|
|
tn->monitors[bearer_id] = NULL;
|
|
tn->monitors[bearer_id] = NULL;
|
|
list_for_each_entry_safe(peer, tmp, &self->list, list) {
|
|
list_for_each_entry_safe(peer, tmp, &self->list, list) {
|