From: Grygorii Strashko Date: Fri, 26 Jun 2020 18:17:08 +0000 (+0300) Subject: net: ethernet: ti: am65-cpsw-ethtool: configured critical setting only when no runnin... X-Git-Tag: v5.9-rc1~133^2~396^2~1 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=3d0fda901c058844bcd72bc6098c6c86884d1877;p=linux-2.6-block.git net: ethernet: ti: am65-cpsw-ethtool: configured critical setting only when no running netdevs Ensure that critical setting can only be configured when there are no running netdevs - all ports are down. Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/ti/am65-cpsw-ethtool.c b/drivers/net/ethernet/ti/am65-cpsw-ethtool.c index f7b33875a385..496dafb25128 100644 --- a/drivers/net/ethernet/ti/am65-cpsw-ethtool.c +++ b/drivers/net/ethernet/ti/am65-cpsw-ethtool.c @@ -445,7 +445,7 @@ static int am65_cpsw_set_channels(struct net_device *ndev, /* Check if interface is up. Can change the num queues when * the interface is down. */ - if (netif_running(ndev)) + if (common->usage_count) return -EBUSY; am65_cpsw_nuss_remove_tx_chns(common); @@ -734,6 +734,9 @@ static int am65_cpsw_set_ethtool_priv_flags(struct net_device *ndev, u32 flags) rrobin = !!(flags & AM65_CPSW_PRIV_P0_RX_PTYPE_RROBIN); + if (common->usage_count) + return -EBUSY; + if (common->est_enabled && rrobin) { netdev_err(ndev, "p0-rx-ptype-rrobin flag conflicts with QOS\n");