]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop net-mvmdio-avoid-excessive-sleeps-in-polled-mode.patch from 5.15 and 6.1
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Feb 2024 01:44:21 +0000 (17:44 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Feb 2024 01:44:21 +0000 (17:44 -0800)
Breaks the build.

queue-5.15/net-mvmdio-avoid-excessive-sleeps-in-polled-mode.patch [deleted file]
queue-5.15/series
queue-6.1/net-mvmdio-avoid-excessive-sleeps-in-polled-mode.patch [deleted file]
queue-6.1/series

diff --git a/queue-5.15/net-mvmdio-avoid-excessive-sleeps-in-polled-mode.patch b/queue-5.15/net-mvmdio-avoid-excessive-sleeps-in-polled-mode.patch
deleted file mode 100644 (file)
index 8b51e94..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From f9a8748805ecba96a51e3ef86976482309006e7e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 4 Dec 2023 11:08:10 +0100
-Subject: net: mvmdio: Avoid excessive sleeps in polled mode
-
-From: Tobias Waldekranz <tobias@waldekranz.com>
-
-[ Upstream commit 7dd12fe34686d89c332b1a05104d18d728591f0a ]
-
-Before this change, when operating in polled mode, i.e. no IRQ is
-available, every individual C45 access would be hit with a 150us sleep
-after the bus access.
-
-For example, on a board with a CN9130 SoC connected to an MV88X3310
-PHY, a single C45 read would take around 165us:
-
-    root@infix:~$ mdio f212a600.mdio-mii mmd 4:1 bench 0xc003
-    Performed 1000 reads in 165ms
-
-By replacing the long sleep with a tighter poll loop, we observe a 10x
-increase in bus throughput:
-
-    root@infix:~$ mdio f212a600.mdio-mii mmd 4:1 bench 0xc003
-    Performed 1000 reads in 15ms
-
-Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
-Reviewed-by: Andrew Lunn <andrew@lunn.ch>
-Tested-by: Andrew Lunn <andrew@lunn.ch>
-Link: https://lore.kernel.org/r/20231204100811.2708884-3-tobias@waldekranz.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/marvell/mvmdio.c | 53 ++++++++-------------------
- 1 file changed, 16 insertions(+), 37 deletions(-)
-
-diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c
-index ef878973b859..b4c576e79a95 100644
---- a/drivers/net/ethernet/marvell/mvmdio.c
-+++ b/drivers/net/ethernet/marvell/mvmdio.c
-@@ -23,6 +23,7 @@
- #include <linux/delay.h>
- #include <linux/interrupt.h>
- #include <linux/io.h>
-+#include <linux/iopoll.h>
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/of_device.h>
-@@ -58,11 +59,6 @@
-  * - Armada 370       (Globalscale Mirabox):   41us to 43us (Polled)
-  */
- #define MVMDIO_SMI_TIMEOUT            1000 /* 1000us = 1ms */
--#define MVMDIO_SMI_POLL_INTERVAL_MIN  45
--#define MVMDIO_SMI_POLL_INTERVAL_MAX  55
--
--#define MVMDIO_XSMI_POLL_INTERVAL_MIN 150
--#define MVMDIO_XSMI_POLL_INTERVAL_MAX 160
- struct orion_mdio_dev {
-       void __iomem *regs;
-@@ -84,8 +80,6 @@ enum orion_mdio_bus_type {
- struct orion_mdio_ops {
-       int (*is_done)(struct orion_mdio_dev *);
--      unsigned int poll_interval_min;
--      unsigned int poll_interval_max;
- };
- /* Wait for the SMI unit to be ready for another operation
-@@ -94,34 +88,23 @@ static int orion_mdio_wait_ready(const struct orion_mdio_ops *ops,
-                                struct mii_bus *bus)
- {
-       struct orion_mdio_dev *dev = bus->priv;
--      unsigned long timeout = usecs_to_jiffies(MVMDIO_SMI_TIMEOUT);
--      unsigned long end = jiffies + timeout;
--      int timedout = 0;
-+      unsigned long timeout;
-+      int done;
--      while (1) {
--              if (ops->is_done(dev))
-+      if (dev->err_interrupt <= 0) {
-+              if (!read_poll_timeout_atomic(ops->is_done, done, done, 2,
-+                                            MVMDIO_SMI_TIMEOUT, false, dev))
-+                      return 0;
-+      } else {
-+              /* wait_event_timeout does not guarantee a delay of at
-+               * least one whole jiffie, so timeout must be no less
-+               * than two.
-+               */
-+              timeout = max(usecs_to_jiffies(MVMDIO_SMI_TIMEOUT), 2);
-+
-+              if (wait_event_timeout(dev->smi_busy_wait,
-+                                     ops->is_done(dev), timeout))
-                       return 0;
--              else if (timedout)
--                      break;
--
--              if (dev->err_interrupt <= 0) {
--                      usleep_range(ops->poll_interval_min,
--                                   ops->poll_interval_max);
--
--                      if (time_is_before_jiffies(end))
--                              ++timedout;
--              } else {
--                      /* wait_event_timeout does not guarantee a delay of at
--                       * least one whole jiffie, so timeout must be no less
--                       * than two.
--                       */
--                      if (timeout < 2)
--                              timeout = 2;
--                      wait_event_timeout(dev->smi_busy_wait,
--                                         ops->is_done(dev), timeout);
--
--                      ++timedout;
--              }
-       }
-       dev_err(bus->parent, "Timeout: SMI busy for too long\n");
-@@ -135,8 +118,6 @@ static int orion_mdio_smi_is_done(struct orion_mdio_dev *dev)
- static const struct orion_mdio_ops orion_mdio_smi_ops = {
-       .is_done = orion_mdio_smi_is_done,
--      .poll_interval_min = MVMDIO_SMI_POLL_INTERVAL_MIN,
--      .poll_interval_max = MVMDIO_SMI_POLL_INTERVAL_MAX,
- };
- static int orion_mdio_smi_read(struct mii_bus *bus, int mii_id,
-@@ -200,8 +181,6 @@ static int orion_mdio_xsmi_is_done(struct orion_mdio_dev *dev)
- static const struct orion_mdio_ops orion_mdio_xsmi_ops = {
-       .is_done = orion_mdio_xsmi_is_done,
--      .poll_interval_min = MVMDIO_XSMI_POLL_INTERVAL_MIN,
--      .poll_interval_max = MVMDIO_XSMI_POLL_INTERVAL_MAX,
- };
- static int orion_mdio_xsmi_read(struct mii_bus *bus, int mii_id,
--- 
-2.43.0
-
index 265c3c39fc7b5c754ed4e83e473be7735c8ecad9..92cf883fe74c539afca718b19dd92d98c5b3b8f8 100644 (file)
@@ -183,7 +183,6 @@ wifi-ath9k-fix-potential-array-index-out-of-bounds-r.patch
 bpf-add-map-and-need_defer-parameters-to-.map_fd_put.patch
 scsi-libfc-don-t-schedule-abort-twice.patch
 scsi-libfc-fix-up-timeout-error-in-fc_fcp_rec_error.patch
-net-mvmdio-avoid-excessive-sleeps-in-polled-mode.patch
 bpf-set-uattr-batch.count-as-zero-before-batched-upd.patch
 arm-dts-rockchip-fix-rk3036-hdmi-ports-node.patch
 arm-dts-imx25-27-eukrea-fix-rtc-node-name.patch
diff --git a/queue-6.1/net-mvmdio-avoid-excessive-sleeps-in-polled-mode.patch b/queue-6.1/net-mvmdio-avoid-excessive-sleeps-in-polled-mode.patch
deleted file mode 100644 (file)
index 4c77f3d..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From e809ecb6a2323dc7d3d124ceba1d2ce839aea15c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 4 Dec 2023 11:08:10 +0100
-Subject: net: mvmdio: Avoid excessive sleeps in polled mode
-
-From: Tobias Waldekranz <tobias@waldekranz.com>
-
-[ Upstream commit 7dd12fe34686d89c332b1a05104d18d728591f0a ]
-
-Before this change, when operating in polled mode, i.e. no IRQ is
-available, every individual C45 access would be hit with a 150us sleep
-after the bus access.
-
-For example, on a board with a CN9130 SoC connected to an MV88X3310
-PHY, a single C45 read would take around 165us:
-
-    root@infix:~$ mdio f212a600.mdio-mii mmd 4:1 bench 0xc003
-    Performed 1000 reads in 165ms
-
-By replacing the long sleep with a tighter poll loop, we observe a 10x
-increase in bus throughput:
-
-    root@infix:~$ mdio f212a600.mdio-mii mmd 4:1 bench 0xc003
-    Performed 1000 reads in 15ms
-
-Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
-Reviewed-by: Andrew Lunn <andrew@lunn.ch>
-Tested-by: Andrew Lunn <andrew@lunn.ch>
-Link: https://lore.kernel.org/r/20231204100811.2708884-3-tobias@waldekranz.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/marvell/mvmdio.c | 53 ++++++++-------------------
- 1 file changed, 16 insertions(+), 37 deletions(-)
-
-diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c
-index ef878973b859..b4c576e79a95 100644
---- a/drivers/net/ethernet/marvell/mvmdio.c
-+++ b/drivers/net/ethernet/marvell/mvmdio.c
-@@ -23,6 +23,7 @@
- #include <linux/delay.h>
- #include <linux/interrupt.h>
- #include <linux/io.h>
-+#include <linux/iopoll.h>
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/of_device.h>
-@@ -58,11 +59,6 @@
-  * - Armada 370       (Globalscale Mirabox):   41us to 43us (Polled)
-  */
- #define MVMDIO_SMI_TIMEOUT            1000 /* 1000us = 1ms */
--#define MVMDIO_SMI_POLL_INTERVAL_MIN  45
--#define MVMDIO_SMI_POLL_INTERVAL_MAX  55
--
--#define MVMDIO_XSMI_POLL_INTERVAL_MIN 150
--#define MVMDIO_XSMI_POLL_INTERVAL_MAX 160
- struct orion_mdio_dev {
-       void __iomem *regs;
-@@ -84,8 +80,6 @@ enum orion_mdio_bus_type {
- struct orion_mdio_ops {
-       int (*is_done)(struct orion_mdio_dev *);
--      unsigned int poll_interval_min;
--      unsigned int poll_interval_max;
- };
- /* Wait for the SMI unit to be ready for another operation
-@@ -94,34 +88,23 @@ static int orion_mdio_wait_ready(const struct orion_mdio_ops *ops,
-                                struct mii_bus *bus)
- {
-       struct orion_mdio_dev *dev = bus->priv;
--      unsigned long timeout = usecs_to_jiffies(MVMDIO_SMI_TIMEOUT);
--      unsigned long end = jiffies + timeout;
--      int timedout = 0;
-+      unsigned long timeout;
-+      int done;
--      while (1) {
--              if (ops->is_done(dev))
-+      if (dev->err_interrupt <= 0) {
-+              if (!read_poll_timeout_atomic(ops->is_done, done, done, 2,
-+                                            MVMDIO_SMI_TIMEOUT, false, dev))
-+                      return 0;
-+      } else {
-+              /* wait_event_timeout does not guarantee a delay of at
-+               * least one whole jiffie, so timeout must be no less
-+               * than two.
-+               */
-+              timeout = max(usecs_to_jiffies(MVMDIO_SMI_TIMEOUT), 2);
-+
-+              if (wait_event_timeout(dev->smi_busy_wait,
-+                                     ops->is_done(dev), timeout))
-                       return 0;
--              else if (timedout)
--                      break;
--
--              if (dev->err_interrupt <= 0) {
--                      usleep_range(ops->poll_interval_min,
--                                   ops->poll_interval_max);
--
--                      if (time_is_before_jiffies(end))
--                              ++timedout;
--              } else {
--                      /* wait_event_timeout does not guarantee a delay of at
--                       * least one whole jiffie, so timeout must be no less
--                       * than two.
--                       */
--                      if (timeout < 2)
--                              timeout = 2;
--                      wait_event_timeout(dev->smi_busy_wait,
--                                         ops->is_done(dev), timeout);
--
--                      ++timedout;
--              }
-       }
-       dev_err(bus->parent, "Timeout: SMI busy for too long\n");
-@@ -135,8 +118,6 @@ static int orion_mdio_smi_is_done(struct orion_mdio_dev *dev)
- static const struct orion_mdio_ops orion_mdio_smi_ops = {
-       .is_done = orion_mdio_smi_is_done,
--      .poll_interval_min = MVMDIO_SMI_POLL_INTERVAL_MIN,
--      .poll_interval_max = MVMDIO_SMI_POLL_INTERVAL_MAX,
- };
- static int orion_mdio_smi_read(struct mii_bus *bus, int mii_id,
-@@ -200,8 +181,6 @@ static int orion_mdio_xsmi_is_done(struct orion_mdio_dev *dev)
- static const struct orion_mdio_ops orion_mdio_xsmi_ops = {
-       .is_done = orion_mdio_xsmi_is_done,
--      .poll_interval_min = MVMDIO_XSMI_POLL_INTERVAL_MIN,
--      .poll_interval_max = MVMDIO_XSMI_POLL_INTERVAL_MAX,
- };
- static int orion_mdio_xsmi_read(struct mii_bus *bus, int mii_id,
--- 
-2.43.0
-
index 096906d1839b6217f7636c94959c5bb23417c862..9ff66f7d0805b062e806d61fc081696caa10dc84 100644 (file)
@@ -63,7 +63,6 @@ wifi-ath11k-fix-race-due-to-setting-ath11k_flag_ext_.patch
 bpf-check-rcu_read_lock_trace_held-before-calling-bp.patch
 scsi-libfc-don-t-schedule-abort-twice.patch
 scsi-libfc-fix-up-timeout-error-in-fc_fcp_rec_error.patch
-net-mvmdio-avoid-excessive-sleeps-in-polled-mode.patch
 bpf-set-uattr-batch.count-as-zero-before-batched-upd.patch
 wifi-wfx-fix-possible-null-pointer-dereference-in-wf.patch
 arm-dts-rockchip-fix-rk3036-hdmi-ports-node.patch