]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 May 2024 09:10:58 +0000 (11:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 May 2024 09:10:58 +0000 (11:10 +0200)
added patches:
net-bcmgenet-clear-rgmii_link-upon-link-down.patch

queue-6.1/net-bcmgenet-clear-rgmii_link-upon-link-down.patch [new file with mode: 0644]
queue-6.1/net-bcmgenet-synchronize-ext_rgmii_oob_ctrl-access.patch
queue-6.1/net-bcmgenet-synchronize-umac_cmd-access.patch
queue-6.1/net-bcmgenet-synchronize-use-of-bcmgenet_set_rx_mode.patch
queue-6.1/series

diff --git a/queue-6.1/net-bcmgenet-clear-rgmii_link-upon-link-down.patch b/queue-6.1/net-bcmgenet-clear-rgmii_link-upon-link-down.patch
new file mode 100644 (file)
index 0000000..a6dc718
--- /dev/null
@@ -0,0 +1,80 @@
+From stable+bounces-45203-greg=kroah.com@vger.kernel.org Wed May 15 19:03:16 2024
+From: Florian Fainelli <florian.fainelli@broadcom.com>
+Date: Wed, 15 May 2024 10:02:24 -0700
+Subject: net: bcmgenet: Clear RGMII_LINK upon link down
+To: linux-kernel@vger.kernel.org
+Cc: broonie@kernel.org, Florian Fainelli <f.fainelli@gmail.com>, Jakub Kicinski <kuba@kernel.org>, Florian Fainelli <florian.fainelli@broadcom.com>, Doug Berger <opendmb@gmail.com>, Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>, netdev@vger.kernel.org (open list:BROADCOM GENET ETHERNET DRIVER), stable@vger.kernel.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
+Message-ID: <20240515170227.1679927-2-florian.fainelli@broadcom.com>
+
+From: Florian Fainelli <f.fainelli@gmail.com>
+
+commit 696450c05181559a35d4d5bee55c465b1ac6fe2e upstream
+
+Clear the RGMII_LINK bit upon detecting link down to be consistent with
+setting the bit upon link up. We also move the clearing of the
+out-of-band disable to the runtime initialization rather than for each
+link up/down transition.
+
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+Link: https://lore.kernel.org/r/20221118213754.1383364-1-f.fainelli@gmail.com
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/broadcom/genet/bcmmii.c |   19 ++++++++++++++-----
+ 1 file changed, 14 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
+@@ -72,7 +72,6 @@ static void bcmgenet_mac_config(struct n
+        * Receive clock is provided by the PHY.
+        */
+       reg = bcmgenet_ext_readl(priv, EXT_RGMII_OOB_CTRL);
+-      reg &= ~OOB_DISABLE;
+       reg |= RGMII_LINK;
+       bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
+@@ -100,10 +99,18 @@ static void bcmgenet_mac_config(struct n
+  */
+ void bcmgenet_mii_setup(struct net_device *dev)
+ {
++      struct bcmgenet_priv *priv = netdev_priv(dev);
+       struct phy_device *phydev = dev->phydev;
++      u32 reg;
+-      if (phydev->link)
++      if (phydev->link) {
+               bcmgenet_mac_config(dev);
++      } else {
++              reg = bcmgenet_ext_readl(priv, EXT_RGMII_OOB_CTRL);
++              reg &= ~RGMII_LINK;
++              bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
++      }
++
+       phy_print_status(phydev);
+ }
+@@ -264,18 +271,20 @@ int bcmgenet_mii_config(struct net_devic
+                       (priv->phy_interface != PHY_INTERFACE_MODE_MOCA);
+       /* This is an external PHY (xMII), so we need to enable the RGMII
+-       * block for the interface to work
++       * block for the interface to work, unconditionally clear the
++       * Out-of-band disable since we do not need it.
+        */
++      reg = bcmgenet_ext_readl(priv, EXT_RGMII_OOB_CTRL);
++      reg &= ~OOB_DISABLE;
+       if (priv->ext_phy) {
+-              reg = bcmgenet_ext_readl(priv, EXT_RGMII_OOB_CTRL);
+               reg &= ~ID_MODE_DIS;
+               reg |= id_mode_dis;
+               if (GENET_IS_V1(priv) || GENET_IS_V2(priv) || GENET_IS_V3(priv))
+                       reg |= RGMII_MODE_EN_V123;
+               else
+                       reg |= RGMII_MODE_EN;
+-              bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
+       }
++      bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
+       if (init)
+               dev_info(kdev, "configuring instance for %s\n", phy_name);
index 1892a5052347d3ca36cc9d5c03c99666045511e7..c3b706b81ac94272602fcd0026e9e3a4e039f0af 100644 (file)
@@ -1,11 +1,14 @@
-From d85cf67a339685beae1d0aee27b7f61da95455be Mon Sep 17 00:00:00 2001
-From: Doug Berger <opendmb@gmail.com>
-Date: Thu, 25 Apr 2024 15:27:19 -0700
+From stable+bounces-45204-greg=kroah.com@vger.kernel.org Wed May 15 19:03:18 2024
+From: Florian Fainelli <florian.fainelli@broadcom.com>
+Date: Wed, 15 May 2024 10:02:25 -0700
 Subject: net: bcmgenet: synchronize EXT_RGMII_OOB_CTRL access
+To: linux-kernel@vger.kernel.org
+Cc: broonie@kernel.org, Doug Berger <opendmb@gmail.com>, stable@vger.kernel.org, Florian Fainelli <florian.fainelli@broadcom.com>, "David S . Miller" <davem@davemloft.net>, Florian Fainelli <f.fainelli@gmail.com>, Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, netdev@vger.kernel.org (open list:BROADCOM GENET ETHERNET DRIVER), Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
+Message-ID: <20240515170227.1679927-3-florian.fainelli@broadcom.com>
 
 From: Doug Berger <opendmb@gmail.com>
 
-commit d85cf67a339685beae1d0aee27b7f61da95455be upstream.
+commit d85cf67a339685beae1d0aee27b7f61da95455be upstream
 
 The EXT_RGMII_OOB_CTRL register can be written from different
 contexts. It is predominantly written from the adjust_link
@@ -23,6 +26,7 @@ Cc: stable@vger.kernel.org
 Signed-off-by: Doug Berger <opendmb@gmail.com>
 Acked-by: Florian Fainelli <florian.fainelli@broadcom.com>
 Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
  drivers/net/ethernet/broadcom/genet/bcmmii.c |    4 +++-
@@ -39,16 +43,19 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
   */
  
  #include <linux/acpi.h>
-@@ -71,10 +71,12 @@ static void bcmgenet_mac_config(struct n
-        * transmit -- 25MHz(100Mbps) or 125MHz(1Gbps).
-        * Receive clock is provided by the PHY.
+@@ -274,6 +274,7 @@ int bcmgenet_mii_config(struct net_devic
+        * block for the interface to work, unconditionally clear the
+        * Out-of-band disable since we do not need it.
         */
 +      mutex_lock(&phydev->lock);
        reg = bcmgenet_ext_readl(priv, EXT_RGMII_OOB_CTRL);
        reg &= ~OOB_DISABLE;
-       reg |= RGMII_LINK;
+       if (priv->ext_phy) {
+@@ -285,6 +286,7 @@ int bcmgenet_mii_config(struct net_devic
+                       reg |= RGMII_MODE_EN;
+       }
        bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
 +      mutex_unlock(&phydev->lock);
  
-       reg = bcmgenet_umac_readl(priv, UMAC_CMD);
-       reg &= ~((CMD_SPEED_MASK << CMD_SPEED_SHIFT) |
+       if (init)
+               dev_info(kdev, "configuring instance for %s\n", phy_name);
index f282a0ee83f5a9bc8e03d1b604ba250561954ce3..792998e638b9ca6e0b8fa62667af59fff74958db 100644 (file)
@@ -1,11 +1,14 @@
-From 0d5e2a82232605b337972fb2c7d0cbc46898aca1 Mon Sep 17 00:00:00 2001
-From: Doug Berger <opendmb@gmail.com>
-Date: Thu, 25 Apr 2024 15:27:21 -0700
+From stable+bounces-45206-greg=kroah.com@vger.kernel.org Wed May 15 19:03:43 2024
+From: Florian Fainelli <florian.fainelli@broadcom.com>
+Date: Wed, 15 May 2024 10:02:27 -0700
 Subject: net: bcmgenet: synchronize UMAC_CMD access
+To: linux-kernel@vger.kernel.org
+Cc: broonie@kernel.org, Doug Berger <opendmb@gmail.com>, stable@vger.kernel.org, Florian Fainelli <florian.fainelli@broadcom.com>, "David S . Miller" <davem@davemloft.net>, Florian Fainelli <f.fainelli@gmail.com>, Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, netdev@vger.kernel.org (open list:BROADCOM GENET ETHERNET DRIVER), Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
+Message-ID: <20240515170227.1679927-5-florian.fainelli@broadcom.com>
 
 From: Doug Berger <opendmb@gmail.com>
 
-commit 0d5e2a82232605b337972fb2c7d0cbc46898aca1 upstream.
+commit 0d5e2a82232605b337972fb2c7d0cbc46898aca1 upstream
 
 The UMAC_CMD register is written from different execution
 contexts and has insufficient synchronization protections to
@@ -23,6 +26,7 @@ Cc: stable@vger.kernel.org
 Signed-off-by: Doug Berger <opendmb@gmail.com>
 Acked-by: Florian Fainelli <florian.fainelli@broadcom.com>
 Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
  drivers/net/ethernet/broadcom/genet/bcmgenet.c     |   12 +++++++++++-
@@ -166,15 +170,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  }
 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
-@@ -78,6 +78,7 @@ static void bcmgenet_mac_config(struct n
+@@ -75,6 +75,7 @@ static void bcmgenet_mac_config(struct n
+       reg |= RGMII_LINK;
        bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
-       mutex_unlock(&phydev->lock);
  
 +      spin_lock_bh(&priv->reg_lock);
        reg = bcmgenet_umac_readl(priv, UMAC_CMD);
        reg &= ~((CMD_SPEED_MASK << CMD_SPEED_SHIFT) |
                       CMD_HD_EN |
-@@ -90,6 +91,7 @@ static void bcmgenet_mac_config(struct n
+@@ -87,6 +88,7 @@ static void bcmgenet_mac_config(struct n
                reg |= CMD_TX_EN | CMD_RX_EN;
        }
        bcmgenet_umac_writel(priv, reg, UMAC_CMD);
index e8a5f850348e095e436b563b41327bb9fe51db04..6ed6d33fe1f4c3993f196012b7dd642e408f602c 100644 (file)
@@ -1,11 +1,14 @@
-From 2dbe5f19368caae63b1f59f5bc2af78c7d522b3a Mon Sep 17 00:00:00 2001
-From: Doug Berger <opendmb@gmail.com>
-Date: Thu, 25 Apr 2024 15:27:20 -0700
+From stable+bounces-45205-greg=kroah.com@vger.kernel.org Wed May 15 19:03:49 2024
+From: Florian Fainelli <florian.fainelli@broadcom.com>
+Date: Wed, 15 May 2024 10:02:26 -0700
 Subject: net: bcmgenet: synchronize use of bcmgenet_set_rx_mode()
+To: linux-kernel@vger.kernel.org
+Cc: broonie@kernel.org, Doug Berger <opendmb@gmail.com>, stable@vger.kernel.org, Florian Fainelli <florian.fainelli@broadcom.com>, "David S . Miller" <davem@davemloft.net>, Florian Fainelli <f.fainelli@gmail.com>, Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, netdev@vger.kernel.org (open list:BROADCOM GENET ETHERNET DRIVER), Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
+Message-ID: <20240515170227.1679927-4-florian.fainelli@broadcom.com>
 
 From: Doug Berger <opendmb@gmail.com>
 
-commit 2dbe5f19368caae63b1f59f5bc2af78c7d522b3a upstream.
+commit 2dbe5f19368caae63b1f59f5bc2af78c7d522b3a upstream
 
 The ndo_set_rx_mode function is synchronized with the
 netif_addr_lock spinlock and BHs disabled. Since this
@@ -17,6 +20,7 @@ Cc: stable@vger.kernel.org
 Signed-off-by: Doug Berger <opendmb@gmail.com>
 Acked-by: Florian Fainelli <florian.fainelli@broadcom.com>
 Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
  drivers/net/ethernet/broadcom/genet/bcmgenet.c |    4 +++-
index 7eb2e52b9934ac329ef4e020b7b0801075a60c56..b7d08d3ba57713131db09d588bf00b4cf252df57 100644 (file)
@@ -208,9 +208,6 @@ iio-imu-adis16475-fix-sync-mode-setting.patch
 iio-accel-mxc4005-interrupt-handling-fixes.patch
 kmsan-compiler_types-declare-__no_sanitize_or_inline.patch
 tipc-fix-uaf-in-error-path.patch
-net-bcmgenet-synchronize-ext_rgmii_oob_ctrl-access.patch
-net-bcmgenet-synchronize-use-of-bcmgenet_set_rx_mode.patch
-net-bcmgenet-synchronize-umac_cmd-access.patch
 asoc-tegra-fix-dspk-16-bit-playback.patch
 asoc-ti-davinci-mcasp-fix-race-condition-during-probe.patch
 dyndbg-fix-old-bug_on-in-control-parser.patch
@@ -241,3 +238,7 @@ btrfs-do-not-wait-for-short-bulk-allocation.patch
 mm-hugetlb-fix-debug_locks_warn_on-1-when-dissolve_free_hugetlb_folio.patch
 mm-swapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.patch
 md-fix-kmemleak-of-rdev-serial.patch
+net-bcmgenet-clear-rgmii_link-upon-link-down.patch
+net-bcmgenet-synchronize-ext_rgmii_oob_ctrl-access.patch
+net-bcmgenet-synchronize-use-of-bcmgenet_set_rx_mode.patch
+net-bcmgenet-synchronize-umac_cmd-access.patch