From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick McHardy Subject: Re: IPv4/IPv6 sysctl unregistration deadlock Date: Mon, 02 Mar 2009 12:07:11 +0100 Message-ID: <49ABBDDF.4030805@trash.net> References: <49A4D5D5.5090602@trash.net> <20090225061902.GA32430@gondor.apana.org.au> <49A4E3F8.4050406@trash.net> <49A4F0D7.20304@trash.net> <20090225084321.GA1101@gondor.apana.org.au> <20090226062257.GA11511@gondor.apana.org.au> <20090226084924.16cb3e08@nehalam> <49A83063.2060600@candelatech.com> <20090227103812.14af52b3@nehalam> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Cc: Ben Greear , "Eric W. Biederman" , Herbert Xu , Linux Netdev List , "David S. Miller" To: Stephen Hemminger Return-path: Received: from stinky.trash.net ([213.144.137.162]:42146 "EHLO stinky.trash.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752415AbZCBLHP (ORCPT ); Mon, 2 Mar 2009 06:07:15 -0500 In-Reply-To: <20090227103812.14af52b3@nehalam> Sender: netdev-owner@vger.kernel.org List-ID: Stephen Hemminger wrote: > On Fri, 27 Feb 2009 10:26:43 -0800 > Ben Greear wrote: > >> Stephen Hemminger wrote: >> >>> Subject: [PATCH] Avoid race between network down and sysfs >>> >>> >>> Signed-off-by: Stephen Hemminger >>> >>> --- a/net/core/net-sysfs.c 2009-02-26 08:36:18.000000000 -0800 >>> +++ b/net/core/net-sysfs.c 2009-02-26 08:37:51.000000000 -0800 >>> @@ -77,7 +77,9 @@ static ssize_t netdev_store(struct devic >>> if (endp == buf) >>> goto err; >>> >>> - rtnl_lock(); >>> + if (!rtnl_trylock()) >>> + return -ERESTARTSYS; >>> + >>> if (dev_isalive(net)) { >>> if ((ret = (*set)(net, new)) == 0) >>> ret = len; >> I can test this to see if it fixes my problem. Are the above lines the >> entirety of the patch? > > yes We should be able to avoid the restart looping in most cases, we only need to do this while unregistration is in progress.