Просмотр исходного кода

netfilter: cttimeout: fix deadlock due to erroneous unlock/lock conversion

The spin_unlock call should have been left as-is, revert.

Fixes: b16c29191dc89bd ("netfilter: nf_conntrack: use safer way to lock all buckets")
Reported-by: kernel test robot <fengguang.wu@intel.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Florian Westphal 10 лет назад
Родитель
Сommit
53c520c2ab
1 измененных файлов с 1 добавлено и 1 удалено
  1. 1 1
      net/netfilter/nfnetlink_cttimeout.c

+ 1 - 1
net/netfilter/nfnetlink_cttimeout.c

@@ -312,7 +312,7 @@ static void ctnl_untimeout(struct net *net, struct ctnl_timeout *timeout)
 			hlist_nulls_for_each_entry(h, nn, &net->ct.hash[i], hnnode)
 			hlist_nulls_for_each_entry(h, nn, &net->ct.hash[i], hnnode)
 				untimeout(h, timeout);
 				untimeout(h, timeout);
 		}
 		}
-		nf_conntrack_lock(&nf_conntrack_locks[i % CONNTRACK_LOCKS]);
+		spin_unlock(&nf_conntrack_locks[i % CONNTRACK_LOCKS]);
 	}
 	}
 	local_bh_enable();
 	local_bh_enable();
 }
 }