Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp203802pxy; Wed, 21 Apr 2021 23:32:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzDmaQmoRGKEepCe7wdX37pSbzwFB4syYpam5TF2GHzy8Qxsn1IppItdTkTpG1cyGfF8c1R X-Received: by 2002:a17:90b:344d:: with SMTP id lj13mr15267710pjb.44.1619073129923; Wed, 21 Apr 2021 23:32:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619073129; cv=none; d=google.com; s=arc-20160816; b=UmNFR2s/oEJfhBT5sGrbPxmHKOdMGmX0xJAJ9xTKujs6x/awn21dz4WVfMnulCOfcw 3VB0mDBe73rOX9cFzNeA0GloskdukCopEZ4wEcjG3EqjJnOeFcB4A0MvYflO8kMNYSxk z0L9698Re1e/TJV5YCFrdQIYXwhjLjIfxz8vm11pV5F+9T+8KcN3V7BwuryXbZIjZ0S6 FY95SxJpMgNz/3zn4n3PeBshSL79bDiGmdqVoP4mMOCQ94pSSIiMF6+eqClWfRQ8eyY4 bYsRFLACZ9pDl4bYUKiDYljZHbZhutcV0RavmWjAxivt4t+D87Cm7I6oCoCWX37cb0mQ P5XQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version; bh=KH2yiVVK29WzNfni5AeHHTVA6JCJDAQ4/MvHziCSuJ0=; b=QkJYdd1vH6A+olNYowgo/mlKkPlYg/I6XEqReDIl/OTrBR/TNYyHtlXiJVzNj55Zy+ Phket8mZoUED0CSeEC3r4hGp8818S4VW6jGvXWy93+BYDcjbHy1BDQ72cPwzQd8Rmt9Q BSRc4sb68sjo8QVM+OY1DK7HSQDOoXNTSNoX6TgQy8lMdJTSD/777QK2IFw1HV7KtjQo ICvG62Mm4P3CBJOETjjDE5VcnK/YKOpXPXNkkpgnDQbOn3n3FfSbmGRITB0WwvT77nHK NAWxfArKnJXeY2020ca3AUl6GmP6Ju2k1zzogVqmhnO5jeboPODr+ufpPNzVu0GDgINA jO4Q== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s10si2271423plr.275.2021.04.21.23.31.57; Wed, 21 Apr 2021 23:32:09 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234870AbhDVGbU convert rfc822-to-8bit (ORCPT + 99 others); Thu, 22 Apr 2021 02:31:20 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:52697 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229967AbhDVGbT (ORCPT ); Thu, 22 Apr 2021 02:31:19 -0400 Received: from mail-wr1-f72.google.com ([209.85.221.72]) by youngberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1lZSrM-0004dM-3y for linux-kernel@vger.kernel.org; Thu, 22 Apr 2021 06:30:44 +0000 Received: by mail-wr1-f72.google.com with SMTP id t18-20020adfdc120000b02900ffe4432d8bso13368706wri.6 for ; Wed, 21 Apr 2021 23:30:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=3kzgVjAjXqA0gwr2eY96/OSAGqGr3gZ/6NHtH93TvQg=; b=HjWM/mqzGX2fnxwilEnY7PbmJQjcg4FmMrQU27Be2HCYHYrksVUxP+aMfS2IjTvFCi wbwrMd/NGLuJ8NGzrYs6I1taSCQ+RP4x/kxRXadUqcnJVm6xj35h1IBbBIuGTyXW8PPc vb4D37wLgBipa6dE7BG+/CHBIuMYPbjW4cJfk6zjWwRq08IXPmvNrlldTFpXnN41I9he 6eJEcj2x7Squ6EyxgZwycU9W0//vT6wRhE9hisQvA6oqrXc8oRKrlEP39fYHDlS9NkAJ 5uN7HIkuLI3tKqChe66qJW/fB1hDlPfDVrXW7TgrH3ZUAc7nvBTSd3B1tZEnj+hoFNJ0 uxZQ== X-Gm-Message-State: AOAM532eVpTtOphydwIP1I7mk8rgPRMR/GsHyYh6+KslOvzL7cRAFSIm mFU8Mh34si1Cy1CZaQNpZJlDskDf+ABZEn9tG9zldne4LKEQubLRPTE4SX/7jUqxT+EEhPXQi7v NeV0UmKhHCAtLLJmBbGpw1Zbi30cB6qnTmigtHNVlk683G7N/FYyARLvpeA== X-Received: by 2002:a05:6000:362:: with SMTP id f2mr2040246wrf.141.1619073043680; Wed, 21 Apr 2021 23:30:43 -0700 (PDT) X-Received: by 2002:a05:6000:362:: with SMTP id f2mr2040231wrf.141.1619073043512; Wed, 21 Apr 2021 23:30:43 -0700 (PDT) MIME-Version: 1.0 References: <20210420075406.64105-1-acelan.kao@canonical.com> <20210420122715.2066b537@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: <20210420122715.2066b537@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> From: AceLan Kao Date: Thu, 22 Apr 2021 14:30:32 +0800 Message-ID: Subject: Re: [PATCH] net: called rtnl_unlock() before runpm resumes devices To: Jakub Kicinski Cc: Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Andrii Nakryiko , Wei Wang , Cong Wang , Taehee Yoo , =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= , netdev , LKML Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Yes, should add Fixes: 9474933caf21 ("igb: close/suspend race in netif_device_detach") and also Fixes: 9513d2a5dc7f ("igc: Add legacy power management support") Jakub Kicinski 於 2021年4月21日 週三 上午3:27寫道: > > 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.