[NETFILTER]: Fix deadlock with ip_queue/ip6_queue Signed-off-by: Patrick McHardy --- commit 36d73751283413992a12837f7a6e4116b9e70d3f tree cd19a0c9a2e183b887ef5fc8cfec8682fe3b24e3 parent 2a330e4e1da97267e1dd4a2ed3f8cd7cabdf21ca author Patrick McHardy Sun, 31 Jul 2005 18:48:38 +0200 committer Patrick McHardy Sun, 31 Jul 2005 18:48:38 +0200 net/ipv4/netfilter/ip_queue.c | 2 ++ net/ipv6/netfilter/ip6_queue.c | 2 ++ 2 files changed, 4 insertions(+), 0 deletions(-) diff --git a/net/ipv4/netfilter/ip_queue.c b/net/ipv4/netfilter/ip_queue.c --- a/net/ipv4/netfilter/ip_queue.c +++ b/net/ipv4/netfilter/ip_queue.c @@ -62,7 +62,9 @@ static DECLARE_MUTEX(ipqnl_sem); static void ipq_issue_verdict(struct ipq_queue_entry *entry, int verdict) { + local_bh_disable(); nf_reinject(entry->skb, entry->info, verdict); + local_bh_enable(); kfree(entry); } diff --git a/net/ipv6/netfilter/ip6_queue.c b/net/ipv6/netfilter/ip6_queue.c --- a/net/ipv6/netfilter/ip6_queue.c +++ b/net/ipv6/netfilter/ip6_queue.c @@ -68,7 +68,9 @@ static DECLARE_MUTEX(ipqnl_sem); static void ipq_issue_verdict(struct ipq_queue_entry *entry, int verdict) { + local_bh_disable(); nf_reinject(entry->skb, entry->info, verdict); + local_bh_enable(); kfree(entry); }