]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 May 2024 11:43:15 +0000 (13:43 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 May 2024 11:43:15 +0000 (13:43 +0200)
added patches:
net-bcmgenet-keep-mac-in-reset-until-phy-is-up.patch
net-bcmgenet-synchronize-ext_rgmii_oob_ctrl-access.patch
net-bcmgenet-synchronize-umac_cmd-access.patch
net-bcmgenet-synchronize-use-of-bcmgenet_set_rx_mode.patch
revert-net-bcmgenet-use-rgmii-loopback-for-mac-reset.patch
revert-selftests-mm-fix-map_hugetlb-failure-on-64k-page-size-systems.patch

queue-5.4/net-bcmgenet-keep-mac-in-reset-until-phy-is-up.patch [new file with mode: 0644]
queue-5.4/net-bcmgenet-synchronize-ext_rgmii_oob_ctrl-access.patch [new file with mode: 0644]
queue-5.4/net-bcmgenet-synchronize-umac_cmd-access.patch [new file with mode: 0644]
queue-5.4/net-bcmgenet-synchronize-use-of-bcmgenet_set_rx_mode.patch [new file with mode: 0644]
queue-5.4/revert-net-bcmgenet-use-rgmii-loopback-for-mac-reset.patch [new file with mode: 0644]
queue-5.4/revert-selftests-mm-fix-map_hugetlb-failure-on-64k-page-size-systems.patch [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/net-bcmgenet-keep-mac-in-reset-until-phy-is-up.patch b/queue-5.4/net-bcmgenet-keep-mac-in-reset-until-phy-is-up.patch
new file mode 100644 (file)
index 0000000..f892eb3
--- /dev/null
@@ -0,0 +1,100 @@
+From 88f6c8bf1aaed5039923fb4c701cab4d42176275 Mon Sep 17 00:00:00 2001
+From: Doug Berger <opendmb@gmail.com>
+Date: Mon, 16 Mar 2020 14:44:56 -0700
+Subject: net: bcmgenet: keep MAC in reset until PHY is up
+
+From: Doug Berger <opendmb@gmail.com>
+
+commit 88f6c8bf1aaed5039923fb4c701cab4d42176275 upstream.
+
+As noted in commit 28c2d1a7a0bf ("net: bcmgenet: enable loopback
+during UniMAC sw_reset") the UniMAC must be clocked at least 5
+cycles while the sw_reset is asserted to ensure a clean reset.
+
+That commit enabled local loopback to provide an Rx clock from the
+GENET sourced Tx clk. However, when connected in MII mode the Tx
+clk is sourced by the PHY so if an EPHY is not supplying clocks
+(e.g. when the link is down) the UniMAC does not receive the
+necessary clocks.
+
+This commit extends the sw_reset window until the PHY reports that
+the link is up thereby ensuring that the clocks are being provided
+to the MAC to produce a clean reset.
+
+One consequence is that if the system attempts to enter a Wake on
+LAN suspend state when the PHY link has not been active the MAC
+may not have had a chance to initialize cleanly. In this case, we
+remove the sw_reset and enable the WoL reception path as normal
+with the hope that the PHY will provide the necessary clocks to
+drive the WoL blocks if the link becomes active after the system
+has entered suspend.
+
+Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
+Signed-off-by: Doug Berger <opendmb@gmail.com>
+Acked-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/broadcom/genet/bcmgenet.c     |   10 ++++------
+ drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c |    6 +++++-
+ drivers/net/ethernet/broadcom/genet/bcmmii.c       |    6 ++++++
+ 3 files changed, 15 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+@@ -1991,6 +1991,8 @@ static void umac_enable_set(struct bcmge
+       u32 reg;
+       reg = bcmgenet_umac_readl(priv, UMAC_CMD);
++      if (reg & CMD_SW_RESET)
++              return;
+       if (enable)
+               reg |= mask;
+       else
+@@ -2010,13 +2012,9 @@ static void reset_umac(struct bcmgenet_p
+       bcmgenet_rbuf_ctrl_set(priv, 0);
+       udelay(10);
+-      /* disable MAC while updating its registers */
+-      bcmgenet_umac_writel(priv, 0, UMAC_CMD);
+-
+-      /* issue soft reset with (rg)mii loopback to ensure a stable rxclk */
+-      bcmgenet_umac_writel(priv, CMD_SW_RESET | CMD_LCL_LOOP_EN, UMAC_CMD);
++      /* issue soft reset and disable MAC while updating its registers */
++      bcmgenet_umac_writel(priv, CMD_SW_RESET, UMAC_CMD);
+       udelay(2);
+-      bcmgenet_umac_writel(priv, 0, UMAC_CMD);
+ }
+ static void bcmgenet_intr_disable(struct bcmgenet_priv *priv)
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c
+@@ -132,8 +132,12 @@ int bcmgenet_wol_power_down_cfg(struct b
+               return -EINVAL;
+       }
+-      /* disable RX */
++      /* Can't suspend with WoL if MAC is still in reset */
+       reg = bcmgenet_umac_readl(priv, UMAC_CMD);
++      if (reg & CMD_SW_RESET)
++              reg &= ~CMD_SW_RESET;
++
++      /* disable RX */
+       reg &= ~CMD_RX_EN;
+       bcmgenet_umac_writel(priv, reg, UMAC_CMD);
+       mdelay(10);
+--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
+@@ -96,6 +96,12 @@ void bcmgenet_mii_setup(struct net_devic
+                              CMD_HD_EN |
+                              CMD_RX_PAUSE_IGNORE | CMD_TX_PAUSE_IGNORE);
+               reg |= cmd_bits;
++              if (reg & CMD_SW_RESET) {
++                      reg &= ~CMD_SW_RESET;
++                      bcmgenet_umac_writel(priv, reg, UMAC_CMD);
++                      udelay(2);
++                      reg |= CMD_TX_EN | CMD_RX_EN;
++              }
+               bcmgenet_umac_writel(priv, reg, UMAC_CMD);
+               priv->eee.eee_active = phy_init_eee(phydev, 0) >= 0;
diff --git a/queue-5.4/net-bcmgenet-synchronize-ext_rgmii_oob_ctrl-access.patch b/queue-5.4/net-bcmgenet-synchronize-ext_rgmii_oob_ctrl-access.patch
new file mode 100644 (file)
index 0000000..ce9d060
--- /dev/null
@@ -0,0 +1,48 @@
+From d85cf67a339685beae1d0aee27b7f61da95455be Mon Sep 17 00:00:00 2001
+From: Doug Berger <opendmb@gmail.com>
+Date: Thu, 25 Apr 2024 15:27:19 -0700
+Subject: net: bcmgenet: synchronize EXT_RGMII_OOB_CTRL access
+
+From: Doug Berger <opendmb@gmail.com>
+
+commit d85cf67a339685beae1d0aee27b7f61da95455be upstream.
+
+The EXT_RGMII_OOB_CTRL register can be written from different
+contexts. It is predominantly written from the adjust_link
+handler which is synchronized by the phydev->lock, but can
+also be written from a different context when configuring the
+mii in bcmgenet_mii_config().
+
+The chances of contention are quite low, but it is conceivable
+that adjust_link could occur during resume when WoL is enabled
+so use the phydev->lock synchronizer in bcmgenet_mii_config()
+to be sure.
+
+Fixes: afe3f907d20f ("net: bcmgenet: power on MII block for all MII modes")
+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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/broadcom/genet/bcmmii.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
+@@ -269,6 +269,7 @@ int bcmgenet_mii_config(struct net_devic
+        * block for the interface to work
+        */
+       if (priv->ext_phy) {
++              mutex_lock(&phydev->lock);
+               reg = bcmgenet_ext_readl(priv, EXT_RGMII_OOB_CTRL);
+               reg |= id_mode_dis;
+               if (GENET_IS_V1(priv) || GENET_IS_V2(priv) || GENET_IS_V3(priv))
+@@ -276,6 +277,7 @@ int bcmgenet_mii_config(struct net_devic
+               else
+                       reg |= RGMII_MODE_EN;
+               bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
++              mutex_unlock(&phydev->lock);
+       }
+       if (init)
diff --git a/queue-5.4/net-bcmgenet-synchronize-umac_cmd-access.patch b/queue-5.4/net-bcmgenet-synchronize-umac_cmd-access.patch
new file mode 100644 (file)
index 0000000..e9eb06e
--- /dev/null
@@ -0,0 +1,168 @@
+From 0d5e2a82232605b337972fb2c7d0cbc46898aca1 Mon Sep 17 00:00:00 2001
+From: Doug Berger <opendmb@gmail.com>
+Date: Thu, 25 Apr 2024 15:27:21 -0700
+Subject: net: bcmgenet: synchronize UMAC_CMD access
+
+From: Doug Berger <opendmb@gmail.com>
+
+commit 0d5e2a82232605b337972fb2c7d0cbc46898aca1 upstream.
+
+The UMAC_CMD register is written from different execution
+contexts and has insufficient synchronization protections to
+prevent possible corruption. Of particular concern are the
+acceses from the phy_device delayed work context used by the
+adjust_link call and the BH context that may be used by the
+ndo_set_rx_mode call.
+
+A spinlock is added to the driver to protect contended register
+accesses (i.e. reg_lock) and it is used to synchronize accesses
+to UMAC_CMD.
+
+Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
+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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/broadcom/genet/bcmgenet.c     |   12 +++++++++++-
+ drivers/net/ethernet/broadcom/genet/bcmgenet.h     |    2 ++
+ drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c |    6 ++++++
+ drivers/net/ethernet/broadcom/genet/bcmmii.c       |    2 ++
+ 4 files changed, 21 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+@@ -1990,14 +1990,18 @@ static void umac_enable_set(struct bcmge
+ {
+       u32 reg;
++      spin_lock_bh(&priv->reg_lock);
+       reg = bcmgenet_umac_readl(priv, UMAC_CMD);
+-      if (reg & CMD_SW_RESET)
++      if (reg & CMD_SW_RESET) {
++              spin_unlock_bh(&priv->reg_lock);
+               return;
++      }
+       if (enable)
+               reg |= mask;
+       else
+               reg &= ~mask;
+       bcmgenet_umac_writel(priv, reg, UMAC_CMD);
++      spin_unlock_bh(&priv->reg_lock);
+       /* UniMAC stops on a packet boundary, wait for a full-size packet
+        * to be processed
+@@ -2013,8 +2017,10 @@ static void reset_umac(struct bcmgenet_p
+       udelay(10);
+       /* issue soft reset and disable MAC while updating its registers */
++      spin_lock_bh(&priv->reg_lock);
+       bcmgenet_umac_writel(priv, CMD_SW_RESET, UMAC_CMD);
+       udelay(2);
++      spin_unlock_bh(&priv->reg_lock);
+ }
+ static void bcmgenet_intr_disable(struct bcmgenet_priv *priv)
+@@ -3148,16 +3154,19 @@ static void bcmgenet_set_rx_mode(struct
+        * 3. The number of filters needed exceeds the number filters
+        *    supported by the hardware.
+       */
++      spin_lock(&priv->reg_lock);
+       reg = bcmgenet_umac_readl(priv, UMAC_CMD);
+       if ((dev->flags & (IFF_PROMISC | IFF_ALLMULTI)) ||
+           (nfilter > MAX_MDF_FILTER)) {
+               reg |= CMD_PROMISC;
+               bcmgenet_umac_writel(priv, reg, UMAC_CMD);
++              spin_unlock(&priv->reg_lock);
+               bcmgenet_umac_writel(priv, 0, UMAC_MDF_CTRL);
+               return;
+       } else {
+               reg &= ~CMD_PROMISC;
+               bcmgenet_umac_writel(priv, reg, UMAC_CMD);
++              spin_unlock(&priv->reg_lock);
+       }
+       /* update MDF filter */
+@@ -3515,6 +3524,7 @@ static int bcmgenet_probe(struct platfor
+               goto err;
+       }
++      spin_lock_init(&priv->reg_lock);
+       spin_lock_init(&priv->lock);
+       SET_NETDEV_DEV(dev, &pdev->dev);
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.h
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.h
+@@ -608,6 +608,8 @@ struct bcmgenet_rx_ring {
+ /* device context */
+ struct bcmgenet_priv {
+       void __iomem *base;
++      /* reg_lock: lock to serialize access to shared registers */
++      spinlock_t reg_lock;
+       enum bcmgenet_version version;
+       struct net_device *dev;
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c
+@@ -133,6 +133,7 @@ int bcmgenet_wol_power_down_cfg(struct b
+       }
+       /* Can't suspend with WoL if MAC is still in reset */
++      spin_lock_bh(&priv->reg_lock);
+       reg = bcmgenet_umac_readl(priv, UMAC_CMD);
+       if (reg & CMD_SW_RESET)
+               reg &= ~CMD_SW_RESET;
+@@ -140,6 +141,7 @@ int bcmgenet_wol_power_down_cfg(struct b
+       /* disable RX */
+       reg &= ~CMD_RX_EN;
+       bcmgenet_umac_writel(priv, reg, UMAC_CMD);
++      spin_unlock_bh(&priv->reg_lock);
+       mdelay(10);
+       reg = bcmgenet_umac_readl(priv, UMAC_MPD_CTRL);
+@@ -163,6 +165,7 @@ int bcmgenet_wol_power_down_cfg(struct b
+                 retries);
+       /* Enable CRC forward */
++      spin_lock_bh(&priv->reg_lock);
+       reg = bcmgenet_umac_readl(priv, UMAC_CMD);
+       priv->crc_fwd_en = 1;
+       reg |= CMD_CRC_FWD;
+@@ -170,6 +173,7 @@ int bcmgenet_wol_power_down_cfg(struct b
+       /* Receiver must be enabled for WOL MP detection */
+       reg |= CMD_RX_EN;
+       bcmgenet_umac_writel(priv, reg, UMAC_CMD);
++      spin_unlock_bh(&priv->reg_lock);
+       return 0;
+ }
+@@ -191,8 +195,10 @@ void bcmgenet_wol_power_up_cfg(struct bc
+       bcmgenet_umac_writel(priv, reg, UMAC_MPD_CTRL);
+       /* Disable CRC Forward */
++      spin_lock_bh(&priv->reg_lock);
+       reg = bcmgenet_umac_readl(priv, UMAC_CMD);
+       reg &= ~CMD_CRC_FWD;
+       bcmgenet_umac_writel(priv, reg, UMAC_CMD);
++      spin_unlock_bh(&priv->reg_lock);
+       priv->crc_fwd_en = 0;
+ }
+--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
+@@ -91,6 +91,7 @@ void bcmgenet_mii_setup(struct net_devic
+               reg |= RGMII_LINK;
+               bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
++              spin_lock_bh(&priv->reg_lock);
+               reg = bcmgenet_umac_readl(priv, UMAC_CMD);
+               reg &= ~((CMD_SPEED_MASK << CMD_SPEED_SHIFT) |
+                              CMD_HD_EN |
+@@ -103,6 +104,7 @@ void bcmgenet_mii_setup(struct net_devic
+                       reg |= CMD_TX_EN | CMD_RX_EN;
+               }
+               bcmgenet_umac_writel(priv, reg, UMAC_CMD);
++              spin_unlock_bh(&priv->reg_lock);
+               priv->eee.eee_active = phy_init_eee(phydev, 0) >= 0;
+               bcmgenet_eee_enable_set(dev,
diff --git a/queue-5.4/net-bcmgenet-synchronize-use-of-bcmgenet_set_rx_mode.patch b/queue-5.4/net-bcmgenet-synchronize-use-of-bcmgenet_set_rx_mode.patch
new file mode 100644 (file)
index 0000000..70fb2bb
--- /dev/null
@@ -0,0 +1,36 @@
+From 2dbe5f19368caae63b1f59f5bc2af78c7d522b3a Mon Sep 17 00:00:00 2001
+From: Doug Berger <opendmb@gmail.com>
+Date: Thu, 25 Apr 2024 15:27:20 -0700
+Subject: net: bcmgenet: synchronize use of bcmgenet_set_rx_mode()
+
+From: Doug Berger <opendmb@gmail.com>
+
+commit 2dbe5f19368caae63b1f59f5bc2af78c7d522b3a upstream.
+
+The ndo_set_rx_mode function is synchronized with the
+netif_addr_lock spinlock and BHs disabled. Since this
+function is also invoked directly from the driver the
+same synchronization should be applied.
+
+Fixes: 72f96347628e ("net: bcmgenet: set Rx mode before starting netif")
+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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/broadcom/genet/bcmgenet.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+@@ -2882,7 +2882,9 @@ static void bcmgenet_netif_start(struct
+       struct bcmgenet_priv *priv = netdev_priv(dev);
+       /* Start the network engine */
++      netif_addr_lock_bh(dev);
+       bcmgenet_set_rx_mode(dev);
++      netif_addr_unlock_bh(dev);
+       bcmgenet_enable_rx_napi(priv);
+       umac_enable_set(priv, CMD_TX_EN | CMD_RX_EN, true);
diff --git a/queue-5.4/revert-net-bcmgenet-use-rgmii-loopback-for-mac-reset.patch b/queue-5.4/revert-net-bcmgenet-use-rgmii-loopback-for-mac-reset.patch
new file mode 100644 (file)
index 0000000..8ae34da
--- /dev/null
@@ -0,0 +1,90 @@
+From 612eb1c3b9e504de24136c947ed7c07bc342f3aa Mon Sep 17 00:00:00 2001
+From: Doug Berger <opendmb@gmail.com>
+Date: Mon, 16 Mar 2020 14:44:55 -0700
+Subject: Revert "net: bcmgenet: use RGMII loopback for MAC reset"
+
+From: Doug Berger <opendmb@gmail.com>
+
+commit 612eb1c3b9e504de24136c947ed7c07bc342f3aa upstream.
+
+This reverts commit 3a55402c93877d291b0a612d25edb03d1b4b93ac.
+
+This is not a good solution when connecting to an external switch
+that may not support the isolation of the TXC signal resulting in
+output driver contention on the pin.
+
+A different solution is necessary.
+
+Signed-off-by: Doug Berger <opendmb@gmail.com>
+Acked-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+[Adjusted to accommodate lack of commit 4f8d81b77e66]
+Signed-off-by: Doug Berger <opendmb@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/broadcom/genet/bcmgenet.c |    2 +
+ drivers/net/ethernet/broadcom/genet/bcmmii.c   |   33 -------------------------
+ 2 files changed, 2 insertions(+), 33 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+@@ -2015,6 +2015,8 @@ static void reset_umac(struct bcmgenet_p
+       /* issue soft reset with (rg)mii loopback to ensure a stable rxclk */
+       bcmgenet_umac_writel(priv, CMD_SW_RESET | CMD_LCL_LOOP_EN, UMAC_CMD);
++      udelay(2);
++      bcmgenet_umac_writel(priv, 0, UMAC_CMD);
+ }
+ static void bcmgenet_intr_disable(struct bcmgenet_priv *priv)
+--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
+@@ -187,38 +187,8 @@ int bcmgenet_mii_config(struct net_devic
+       const char *phy_name = NULL;
+       u32 id_mode_dis = 0;
+       u32 port_ctrl;
+-      int bmcr = -1;
+-      int ret;
+       u32 reg;
+-      /* MAC clocking workaround during reset of umac state machines */
+-      reg = bcmgenet_umac_readl(priv, UMAC_CMD);
+-      if (reg & CMD_SW_RESET) {
+-              /* An MII PHY must be isolated to prevent TXC contention */
+-              if (priv->phy_interface == PHY_INTERFACE_MODE_MII) {
+-                      ret = phy_read(phydev, MII_BMCR);
+-                      if (ret >= 0) {
+-                              bmcr = ret;
+-                              ret = phy_write(phydev, MII_BMCR,
+-                                              bmcr | BMCR_ISOLATE);
+-                      }
+-                      if (ret) {
+-                              netdev_err(dev, "failed to isolate PHY\n");
+-                              return ret;
+-                      }
+-              }
+-              /* Switch MAC clocking to RGMII generated clock */
+-              bcmgenet_sys_writel(priv, PORT_MODE_EXT_GPHY, SYS_PORT_CTRL);
+-              /* Ensure 5 clks with Rx disabled
+-               * followed by 5 clks with Reset asserted
+-               */
+-              udelay(4);
+-              reg &= ~(CMD_SW_RESET | CMD_LCL_LOOP_EN);
+-              bcmgenet_umac_writel(priv, reg, UMAC_CMD);
+-              /* Ensure 5 more clocks before Rx is enabled */
+-              udelay(2);
+-      }
+-
+       priv->ext_phy = !priv->internal_phy &&
+                       (priv->phy_interface != PHY_INTERFACE_MODE_MOCA);
+@@ -250,9 +220,6 @@ int bcmgenet_mii_config(struct net_devic
+               phy_set_max_speed(phydev, SPEED_100);
+               bcmgenet_sys_writel(priv,
+                                   PORT_MODE_EXT_EPHY, SYS_PORT_CTRL);
+-              /* Restore the MII PHY after isolation */
+-              if (bmcr >= 0)
+-                      phy_write(phydev, MII_BMCR, bmcr);
+               break;
+       case PHY_INTERFACE_MODE_REVMII:
diff --git a/queue-5.4/revert-selftests-mm-fix-map_hugetlb-failure-on-64k-page-size-systems.patch b/queue-5.4/revert-selftests-mm-fix-map_hugetlb-failure-on-64k-page-size-systems.patch
new file mode 100644 (file)
index 0000000..116793e
--- /dev/null
@@ -0,0 +1,54 @@
+From harshit.m.mogalapalli@oracle.com  Thu May 23 13:26:12 2024
+From: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
+Date: Mon,  6 May 2024 01:50:44 -0700
+Subject: Revert "selftests: mm: fix map_hugetlb failure on 64K page size systems"
+To: stable@vger.kernel.org
+Cc: sashal@kernel.org, vegard.nossum@oracle.com, darren.kenny@oracle.com, Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
+Message-ID: <20240506085044.2943648-1-harshit.m.mogalapalli@oracle.com>
+
+
+This reverts commit 47c68edecca26f0e29b25d26500afd62279951b0 which is
+commit 91b80cc5b39f00399e8e2d17527cad2c7fa535e2 upstream.
+
+map_hugetlb.c:18:10: fatal error: vm_util.h: No such file or directory
+   18 | #include "vm_util.h"
+      |          ^~~~~~~~~~~
+compilation terminated.
+
+vm_util.h is not present in 5.4.y, as commit:642bc52aed9c ("selftests:
+vm: bring common functions to a new file") is not present in stable
+kernels <=6.1.y
+
+Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/testing/selftests/vm/map_hugetlb.c |    7 -------
+ 1 file changed, 7 deletions(-)
+
+--- a/tools/testing/selftests/vm/map_hugetlb.c
++++ b/tools/testing/selftests/vm/map_hugetlb.c
+@@ -15,7 +15,6 @@
+ #include <unistd.h>
+ #include <sys/mman.h>
+ #include <fcntl.h>
+-#include "vm_util.h"
+ #define LENGTH (256UL*1024*1024)
+ #define PROTECTION (PROT_READ | PROT_WRITE)
+@@ -71,16 +70,10 @@ int main(int argc, char **argv)
+ {
+       void *addr;
+       int ret;
+-      size_t hugepage_size;
+       size_t length = LENGTH;
+       int flags = FLAGS;
+       int shift = 0;
+-      hugepage_size = default_huge_page_size();
+-      /* munmap with fail if the length is not page aligned */
+-      if (hugepage_size > length)
+-              length = hugepage_size;
+-
+       if (argc > 1)
+               length = atol(argv[1]) << 20;
+       if (argc > 2) {
index 1cea2669bb82281438a1920aff9adea559dea930..ec7df25a17d40b76a353cf15597b42d1272ec4bd 100644 (file)
@@ -1,2 +1,8 @@
 pinctrl-core-handle-radix_tree_insert-errors-in-pinctrl_register_one_pin.patch
 ext4-fix-bug_on-in-__es_tree_search.patch
+revert-selftests-mm-fix-map_hugetlb-failure-on-64k-page-size-systems.patch
+revert-net-bcmgenet-use-rgmii-loopback-for-mac-reset.patch
+net-bcmgenet-keep-mac-in-reset-until-phy-is-up.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