Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp4550639rwb; Tue, 8 Nov 2022 19:38:39 -0800 (PST) X-Google-Smtp-Source: AMsMyM6WvyEjWj3rf24ivXnUVhRDgINpOLHWUNf93bmhH5ZhHwlI4kdChiNY9o/RQfliq8mrz/QU X-Received: by 2002:a17:90a:cc0b:b0:213:cef:1ffc with SMTP id b11-20020a17090acc0b00b002130cef1ffcmr77860576pju.36.1667965119675; Tue, 08 Nov 2022 19:38:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1667965119; cv=none; d=google.com; s=arc-20160816; b=cRNa9s0I18vUn1ItHqdM2iUB3Gse5cWSLB5m14DAAGIyUj/dhaxc3f8ZA7bq0zovxs t2QKo2zYL9JETBKvX93R8p9uXaF7jnH2lx4rDWACtK2OBexATN2PX8zVgBqCSbl3z7V2 LXXyTahJqnuIbXoUK8yKvXQcjcv7HDd4tGyjLt6kxjA7HmIiVRVTPefzI4LKhNt3p3sa As72AX5TYpKYRLv0FU1qnL4v7IiewzSNOdKasE+LgM9b/fGVZpYTzx2YufCWiy2nem2L KwFI0DIMXs2GzJDqq5k0pBcLHv2c4jO+SZkBz6wtQQMUXYzSq7J98D/YfRk6bPGEqEpP KlYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from :dkim-signature; bh=xTXhDtaeMgisWJcuRL7YO2YnGQKmMAiukqgcwA2Nm2g=; b=BNWHL46qebkkoCWAeoEqI3+FcLqASC7Sjonh/lvewFeQIXW3Na4NpwrMLzgHl5qimp vQJt3fo3prrFGUrRCwnCgtkjLgj/3DQ8U9q+bfGR7oxfFkGmW0G6j5ECxFgo1KfyZqr4 U03G6cn3XyDOyiZTdKqW370Ey1qSDTFdLIfiUQPVINebD3rMULLcZxl52EE8CNi79CWc XHLA0UJDrg9lDDIgthLEEREhcqg3Mnh657TNlNAU30wHz/2KstZabMI+v4IVltVT6/lH nYN8UXEgPEM7Lv3Tc97pExqO/tzZ/iQDfC0m7ESBiJ6s8lCsvKj9ZyGTUIvih9wpXCZN THLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KqJgOgMr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z14-20020a1709027e8e00b001886309635dsi14298120pla.37.2022.11.08.19.38.28; Tue, 08 Nov 2022 19:38:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KqJgOgMr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229968AbiKICyP (ORCPT + 93 others); Tue, 8 Nov 2022 21:54:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229530AbiKICyO (ORCPT ); Tue, 8 Nov 2022 21:54:14 -0500 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 746A521274; Tue, 8 Nov 2022 18:54:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1667962453; x=1699498453; h=from:to:cc:subject:date:message-id; bh=LcPwnMOvNXd8EfDVDs6NwQk1HFjCWGuocIdZbaknvaM=; b=KqJgOgMrUVAPvie08Usgwoa+Upx1E7SFpalm2CdOj9Q52ftjgnEFHd6O Md7HGhNn0/i8ZYGfQvsaSdzW3dlE95KUJuHMzwjPw4y6ZAfC7B6IM4wx9 r0IONYFrBAbH+XQu5YcymB80GAJEcId0uklrQWKX097WqElTAzsmmZu7h JUT7/mQzUnvcXBal6hOCkHg++RamvxNMVjVPNwsOii1ncYBLB2Tt073lv y9p4cwI/hq6ICj6bEBm/nUgsBkbhxRlJP/7dU4+uNAO3RBpVHs5L8Yfaz IbbKVnksjflZpRQKpQCirND1NhWUaXL9YluQproQRWPwcCW0uXCrS9ujg g==; X-IronPort-AV: E=McAfee;i="6500,9779,10525"; a="290589531" X-IronPort-AV: E=Sophos;i="5.96,149,1665471600"; d="scan'208";a="290589531" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Nov 2022 18:54:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10525"; a="669789208" X-IronPort-AV: E=Sophos;i="5.96,149,1665471600"; d="scan'208";a="669789208" Received: from linux.intel.com ([10.54.29.200]) by orsmga001.jf.intel.com with ESMTP; 08 Nov 2022 18:54:12 -0800 Received: from noorazur1-iLBPG12.png.intel.com (noorazur1-iLBPG12.png.intel.com [10.88.229.87]) by linux.intel.com (Postfix) with ESMTP id 25A0F580AE3; Tue, 8 Nov 2022 18:54:08 -0800 (PST) From: Noor Azura Ahmad Tarmizi To: "David S . Miller" , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Muhammad Husaini Zulkifli Cc: netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Voon Weifeng , Tan Tee Min , Looi Hong Aun , Noor Azura Ahmad Tarmizi Subject: [PATCH net 1/1] net: stmmac: add check for supported link mode before mode change Date: Wed, 9 Nov 2022 10:43:29 +0800 Message-Id: <20221109024329.15805-1-noor.azura.ahmad.tarmizi@linux.intel.com> X-Mailer: git-send-email 2.17.1 X-Spam-Status: No, score=-4.0 required=5.0 tests=AC_FROM_MANY_DOTS,AD_PREFS, BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF, RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Noor Azura Ahmad Tarmizi Currently, change for unsupported speed and duplex are sent to the phy, rendering the link to unknown speed (link state down). Plus, advertising settings are also passed down directly to the phy. Additional test is now added to compare new speed and duplex settings and advertising against current supported settings by attached phy. Non-supported new settings(speed/duplex and advertising) will be rejected. Signed-off-by: Noor Azura Ahmad Tarmizi --- .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c index f453b0d09366..d40cf7908eaa 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c @@ -390,6 +390,21 @@ stmmac_ethtool_set_link_ksettings(struct net_device *dev, const struct ethtool_link_ksettings *cmd) { struct stmmac_priv *priv = netdev_priv(dev); + struct ethtool_link_ksettings link_ks = {}; + + /* Get the current link settings */ + stmmac_ethtool_get_link_ksettings(dev, &link_ks); + + /* Check if the speed and duplex are supported by phy */ + if (!phy_lookup_setting(cmd->base.speed, cmd->base.duplex, + link_ks.link_modes.supported, true)) + return -EINVAL; + + /* Check if the advertising request is supported */ + if (!bitmap_subset(cmd->link_modes.advertising, + link_ks.link_modes.supported, + __ETHTOOL_LINK_MODE_MASK_NBITS)) + return -EINVAL; if (priv->hw->pcs & STMMAC_PCS_RGMII || priv->hw->pcs & STMMAC_PCS_SGMII) { -- 2.17.1