Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp55541pxy; Tue, 20 Apr 2021 12:29:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxT1/fbyf/+dgKbAi0McRYngpkbqZ+Ls3hveS+qFKs2J4CZ11CdHrKSu2ij0aY6uZcWEyRC X-Received: by 2002:a17:90a:ab02:: with SMTP id m2mr6627395pjq.234.1618946944120; Tue, 20 Apr 2021 12:29:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618946944; cv=none; d=google.com; s=arc-20160816; b=eRbdmB8y3NIakVrr+lfgiG76JR7Bu4HwjOvcuoeuagAEK+m8Yf9c8yNyHOuWoGN9hP nI7KRt35pCnWb6Q+y8tStufYEemzHzkMVfKlrB2Rm5gfubWDsM2r3WZGBxiZvDuDMMj2 QaiSDbWayLI7MxJlyKpCrsb+kxqVK4wDBV0BTJQU+auEY3XkrHBuMzk9cE43KKIBwUXl QXKENn33M6ymT9xLKrzzGycC0Aspu5oe0Q/A1ZspirI+bTWNIlbNq2uUCcRul0IcyuOb Qs5WyRQedjHtjVo6Lbv0sOkNbTeLJT4u/W6XuhNuPbk1UAnkfph234DNE7BljKXYVQ2Y u8VQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=r6vll/4rvKD1ZpyoCsZym8MwqshfdIknqwsWx67uMNo=; b=cWDEtB3X4j13HWIq8QC3jjdNvyf5HgsLyGsYS9fheqETjW2jJMvWrH4Sx73NVzlUHO y+K474zbC5pclgVB7QlmchtbcYOETbPLwI/okk9vgnq3bL6k7l1ucHf5pCJJ7gU39yQK hhhyJw3Su2yHUW8dSAcJWsH9EI6iuGOhbLaoyJ9nvZaeyGQascHYY8aZj4+8mnfCIqOU 2h/XdqSYQBonzujPMFWuyexb18OSA4PZhOHc/9KsGmEljyDh4sZd6HtCK9KSt4pjDqtZ NGvyM4JIdJe2+V9yx9ag3kN9Rrw/rFI/qfJKZAVIhCYbcQhRB0r9h/omNIHov6y86VND 2Bbw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bEaKFr1M; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f19si4051521pfd.37.2021.04.20.12.28.51; Tue, 20 Apr 2021 12:29:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bEaKFr1M; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233719AbhDTT1v (ORCPT + 99 others); Tue, 20 Apr 2021 15:27:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:50392 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233702AbhDTT1u (ORCPT ); Tue, 20 Apr 2021 15:27:50 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 076A4613E0; Tue, 20 Apr 2021 19:27:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1618946837; bh=vbUd1HhsiYI8V3L0b0QYKz65hMBGEfOzc2WLKkl7gac=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=bEaKFr1Mez65tCaYH1IIrFgT9JyFo/Pl1M4Efp9oO1TdTSE8Ds1fqd26oMD7U7ct7 E0dxEKf3zaMKGYQNQEXHy08yuvBFx11M0FhvGHboGQ+FPfooR4EhOf5atEZu0aEh0K 3vWRiTMuNuV9NdhubK6osKHfDRf6ajV/wrLPhVv0OV3BNrBBCg3p75FazIZSHQLxoK W4hXqk6qk0gjAImIQMN7favxfW4NtpzQH4Dz8aaFaKcBmVR11Gg9KXZTU+t4qf/byW Z2mWLkg/1yT/4elBYnLNH2Ov8uFrTu5Herj8C9bfEbO8rDm7xSjl7f2NfyzM+7jsVV NBtVLAfeJkJXQ== Date: Tue, 20 Apr 2021 12:27:15 -0700 From: Jakub Kicinski To: Eric Dumazet , AceLan Kao Cc: "David S. Miller" , Alexei Starovoitov , Andrii Nakryiko , Wei Wang , Cong Wang , Taehee Yoo , =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= , netdev , LKML Subject: Re: [PATCH] net: called rtnl_unlock() before runpm resumes devices Message-ID: <20210420122715.2066b537@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: References: <20210420075406.64105-1-acelan.kao@canonical.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 20 Apr 2021 10:34:17 +0200 Eric Dumazet wrote: > On Tue, Apr 20, 2021 at 9:54 AM AceLan Kao wrote: > > > > From: "Chia-Lin Kao (AceLan)" > > > > The rtnl_lock() has been called in rtnetlink_rcv_msg(), and then in > > __dev_open() it calls pm_runtime_resume() to resume devices, and in > > some devices' resume function(igb_resum,igc_resume) they calls rtnl_lock() > > again. That leads to a recursive lock. > > > > It should leave the devices' resume function to decide if they need to > > call rtnl_lock()/rtnl_unlock(), so call rtnl_unlock() before calling > > pm_runtime_resume() and then call rtnl_lock() after it in __dev_open(). > > > > > > Hi Acelan > > When was the bugg added ? > Please add a Fixes: tag For immediate cause probably: Fixes: 9474933caf21 ("igb: close/suspend race in netif_device_detach") > By doing so, you give more chances for reviewers to understand why the > fix is not risky, > and help stable teams work. IMO the driver lacks internal locking. Taking rtnl from resume is just one example, git history shows many more places that lacked locking and got papered over with rtnl here.