From patchwork Fri Dec 4 11:27:34 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Kumar X-Patchwork-Id: 40323 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 9CF17B7BF7 for ; Fri, 4 Dec 2009 22:27:52 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755032AbZLDL1d (ORCPT ); Fri, 4 Dec 2009 06:27:33 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754815AbZLDL1c (ORCPT ); Fri, 4 Dec 2009 06:27:32 -0500 Received: from e23smtp07.au.ibm.com ([202.81.31.140]:42748 "EHLO e23smtp07.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754000AbZLDL1c (ORCPT ); Fri, 4 Dec 2009 06:27:32 -0500 Received: from d23relay03.au.ibm.com (d23relay03.au.ibm.com [202.81.31.245]) by e23smtp07.au.ibm.com (8.14.3/8.13.1) with ESMTP id nB4BRbTB019736 for ; Fri, 4 Dec 2009 22:27:37 +1100 Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) by d23relay03.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id nB4BRb8U1679454 for ; Fri, 4 Dec 2009 22:27:37 +1100 Received: from d23av04.au.ibm.com (loopback [127.0.0.1]) by d23av04.au.ibm.com (8.14.3/8.13.1/NCO v10.0 AVout) with ESMTP id nB4BRagG031748 for ; Fri, 4 Dec 2009 22:27:37 +1100 Received: from localhost.localdomain ([9.77.194.115]) by d23av04.au.ibm.com (8.14.3/8.13.1/NCO v10.0 AVin) with ESMTP id nB4BRZMw031703; Fri, 4 Dec 2009 22:27:36 +1100 From: Krishna Kumar To: davem@davemloft.net Cc: netdev@vger.kernel.org, Krishna Kumar Date: Fri, 04 Dec 2009 16:57:34 +0530 Message-Id: <20091204112734.24535.86096.sendpatchset@localhost.localdomain> Subject: [PATCH] ipv6: Fix "waiting for %s to become free" hang Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Krishna Kumar (From code-walkthrough, and untested) Fix "waiting for %s to become free" hang. dev has an extra hold (by ip6mr_reg_vif) which was not dropped before calling unregister_netdevice. Signed-off-by: Krishna Kumar --- net/ipv6/ip6mr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff -ruNp org/net/ipv6/ip6mr.c new/net/ipv6/ip6mr.c --- org/net/ipv6/ip6mr.c 2009-12-04 16:08:07.000000000 +0530 +++ new/net/ipv6/ip6mr.c 2009-12-04 16:09:56.000000000 +0530 @@ -648,8 +648,8 @@ static int mif6_add(struct net *net, str return -ENOBUFS; err = dev_set_allmulti(dev, 1); if (err) { - unregister_netdevice(dev); dev_put(dev); + unregister_netdevice(dev); return err; } break;