From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753836AbcA3BnH (ORCPT ); Fri, 29 Jan 2016 20:43:07 -0500 Received: from shards.monkeyblade.net ([149.20.54.216]:41412 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752550AbcA3BnF (ORCPT ); Fri, 29 Jan 2016 20:43:05 -0500 Date: Fri, 29 Jan 2016 17:43:03 -0800 (PST) Message-Id: <20160129.174303.663518084694618919.davem@davemloft.net> To: gregory.herrero@intel.com Cc: netdev@vger.kernel.org, kuznet@ms2.inr.ac.ru, jmorris@namei.org, yoshfuji@linux-ipv6.org, kaber@trash.net, linux-kernel@vger.kernel.org Subject: Re: [PATCH] ipv6: release idev lock before calling ipv6_ifa_notify() From: David Miller In-Reply-To: <1453970092-10605-1-git-send-email-gregory.herrero@intel.com> References: <1453970092-10605-1-git-send-email-gregory.herrero@intel.com> X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Fri, 29 Jan 2016 17:43:04 -0800 (PST) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gregory Herrero Date: Thu, 28 Jan 2016 09:34:52 +0100 > @@ -2302,8 +2302,11 @@ static void manage_tempaddrs(struct inet6_dev *idev, > ift->flags &= ~IFA_F_DEPRECATED; > > spin_unlock(&ift->lock); > - if (!(flags&IFA_F_TENTATIVE)) > + if (!(flags & IFA_F_TENTATIVE)) { > + read_unlock_bh(&idev->lock); > ipv6_ifa_notify(0, ift); > + read_lock_bh(&idev->lock); > + } > } > > if ((create || list_empty(&idev->tempaddr_list)) && You can't do this, the idev->lock has to be held to keep the list we are iterating over from changing.