Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757733AbcK3QDx (ORCPT ); Wed, 30 Nov 2016 11:03:53 -0500 Received: from lelnx193.ext.ti.com ([198.47.27.77]:51211 "EHLO lelnx193.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757449AbcK3QDn (ORCPT ); Wed, 30 Nov 2016 11:03:43 -0500 Subject: Re: [PATCH] net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during resume To: Ivan Khoronzhuk , Grygorii Strashko References: <20161129222703.10908-1-grygorii.strashko@ti.com> <20161130001857.GB18604@khorivan> CC: "David S. Miller" , , Mugunthan V N , Sekhar Nori , , From: Dave Gerlach Message-ID: <573b4b9d-190a-c374-d047-5a971653f766@ti.com> Date: Wed, 30 Nov 2016 10:03:40 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <20161130001857.GB18604@khorivan> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [128.247.83.19] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1632 Lines: 50 On 11/29/2016 06:18 PM, Ivan Khoronzhuk wrote: > On Tue, Nov 29, 2016 at 04:27:03PM -0600, Grygorii Strashko wrote: >> netif_set_real_num_tx/rx_queues() are required to be called with rtnl_lock >> taken, otherwise ASSERT_RTNL() warning will be triggered - which happens >> now during System resume from suspend: >> cpsw_resume() >> |- cpsw_ndo_open() >> |- netif_set_real_num_tx/rx_queues() >> |- ASSERT_RTNL(); >> >> Hence, fix it by surrounding cpsw_ndo_open() by rtnl_lock/unlock() calls. >> >> Cc: Dave Gerlach >> Cc: Ivan Khoronzhuk >> Fixes: commit e05107e6b747 ("net: ethernet: ti: cpsw: add multi queue support") >> Signed-off-by: Grygorii Strashko > Reviewed-by: Ivan Khoronzhuk > Tested-by: Dave Gerlach >> --- >> drivers/net/ethernet/ti/cpsw.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c >> index ae1ec6a..fd6c03b 100644 >> --- a/drivers/net/ethernet/ti/cpsw.c >> +++ b/drivers/net/ethernet/ti/cpsw.c >> @@ -2944,6 +2944,8 @@ static int cpsw_resume(struct device *dev) >> /* Select default pin state */ >> pinctrl_pm_select_default_state(dev); >> >> + /* shut up ASSERT_RTNL() warning in netif_set_real_num_tx/rx_queues */ >> + rtnl_lock(); >> if (cpsw->data.dual_emac) { >> int i; >> >> @@ -2955,6 +2957,8 @@ static int cpsw_resume(struct device *dev) >> if (netif_running(ndev)) >> cpsw_ndo_open(ndev); >> } >> + rtnl_unlock(); >> + >> return 0; >> } >> #endif >> -- >> 2.10.1 >>