]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 May 2022 17:42:06 +0000 (19:42 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 May 2022 17:42:06 +0000 (19:42 +0200)
added patches:
net-ethernet-stmmac-fix-write-to-sgmii_adapter_base.patch

queue-5.4/net-ethernet-stmmac-fix-write-to-sgmii_adapter_base.patch [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/net-ethernet-stmmac-fix-write-to-sgmii_adapter_base.patch b/queue-5.4/net-ethernet-stmmac-fix-write-to-sgmii_adapter_base.patch
new file mode 100644 (file)
index 0000000..2fa58b2
--- /dev/null
@@ -0,0 +1,56 @@
+From 5fd1fe4807f91ea0cca043114d929faa11bd4190 Mon Sep 17 00:00:00 2001
+From: Dinh Nguyen <dinguyen@kernel.org>
+Date: Wed, 20 Apr 2022 10:23:45 -0500
+Subject: net: ethernet: stmmac: fix write to sgmii_adapter_base
+
+From: Dinh Nguyen <dinguyen@kernel.org>
+
+commit 5fd1fe4807f91ea0cca043114d929faa11bd4190 upstream.
+
+I made a mistake with the commit a6aaa0032424 ("net: ethernet: stmmac:
+fix altr_tse_pcs function when using a fixed-link"). I should have
+tested against both scenario of having a SGMII interface and one
+without.
+
+Without the SGMII PCS TSE adpater, the sgmii_adapter_base address is
+NULL, thus a write to this address will fail.
+
+Cc: stable@vger.kernel.org
+Fixes: a6aaa0032424 ("net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link")
+Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
+Link: https://lore.kernel.org/r/20220420152345.27415-1-dinguyen@kernel.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c |   12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
+@@ -65,8 +65,9 @@ static void socfpga_dwmac_fix_mac_speed(
+       struct phy_device *phy_dev = ndev->phydev;
+       u32 val;
+-      writew(SGMII_ADAPTER_DISABLE,
+-             sgmii_adapter_base + SGMII_ADAPTER_CTRL_REG);
++      if (sgmii_adapter_base)
++              writew(SGMII_ADAPTER_DISABLE,
++                     sgmii_adapter_base + SGMII_ADAPTER_CTRL_REG);
+       if (splitter_base) {
+               val = readl(splitter_base + EMAC_SPLITTER_CTRL_REG);
+@@ -88,10 +89,11 @@ static void socfpga_dwmac_fix_mac_speed(
+               writel(val, splitter_base + EMAC_SPLITTER_CTRL_REG);
+       }
+-      writew(SGMII_ADAPTER_ENABLE,
+-             sgmii_adapter_base + SGMII_ADAPTER_CTRL_REG);
+-      if (phy_dev)
++      if (phy_dev && sgmii_adapter_base) {
++              writew(SGMII_ADAPTER_ENABLE,
++                     sgmii_adapter_base + SGMII_ADAPTER_CTRL_REG);
+               tse_pcs_fix_mac_speed(&dwmac->pcs, phy_dev, speed);
++      }
+ }
+ static int socfpga_dwmac_parse_data(struct socfpga_dwmac *dwmac, struct device *dev)
index 4b25096a848c5018dcbbe2fbac43da289bb95c0a..bd17479efcac503b59ea0e39b7685627cadc2bef 100644 (file)
@@ -70,3 +70,4 @@ ip6_gre-avoid-updating-tunnel-tun_hlen-in-__gre6_xmi.patch
 x86-__memcpy_flushcache-fix-wrong-alignment-if-size-.patch
 cifs-destage-any-unwritten-data-to-the-server-before.patch
 drivers-net-hippi-fix-deadlock-in-rr_close.patch
+net-ethernet-stmmac-fix-write-to-sgmii_adapter_base.patch