[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20161130001857.GB18604@khorivan>
Date: Wed, 30 Nov 2016 02:18:57 +0200
From: Ivan Khoronzhuk <ivan.khoronzhuk@...aro.org>
To: Grygorii Strashko <grygorii.strashko@...com>
Cc: "David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
Mugunthan V N <mugunthanvnm@...com>,
Sekhar Nori <nsekhar@...com>, linux-kernel@...r.kernel.org,
linux-omap@...r.kernel.org, Dave Gerlach <d-gerlach@...com>
Subject: Re: [PATCH] net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning
during resume
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 <d-gerlach@...com>
> Cc: Ivan Khoronzhuk <ivan.khoronzhuk@...aro.org>
> Fixes: commit e05107e6b747 ("net: ethernet: ti: cpsw: add multi queue support")
> Signed-off-by: Grygorii Strashko <grygorii.strashko@...com>
Reviewed-by: Ivan Khoronzhuk <ivan.khoronzhuk@...aro.org>
> ---
> 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
>
Powered by blists - more mailing lists