]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 May 2020 08:32:16 +0000 (10:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 May 2020 08:32:16 +0000 (10:32 +0200)
added patches:
revert-net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch

queue-4.4/revert-net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/revert-net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch b/queue-4.4/revert-net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch
new file mode 100644 (file)
index 0000000..2093a84
--- /dev/null
@@ -0,0 +1,54 @@
+From 3723e384444a064aef4e20aacd148e54b3351c41 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Tue, 12 May 2020 10:29:52 +0200
+Subject: Revert "net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 0d1951fa23ba0d35a4c5498ff28d1c5206d6fcdd which was
+commit d5c3d84657db57bd23ecd58b97f1c99dd42a7b80 upstream.
+
+Guillaume reports that this patch breaks booting on
+at91-sama5d4_xplained, so revert it for now.
+
+Reported-by: "kernelci.org bot" <bot@kernelci.org>
+Reported-by: Guillaume Tucker <guillaume.tucker@collabora.com>
+Cc: Florian Fainelli <f.fainelli@gmail.com>
+Cc: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/phy/phy.c |   15 +++++----------
+ 1 file changed, 5 insertions(+), 10 deletions(-)
+
+--- a/drivers/net/phy/phy.c
++++ b/drivers/net/phy/phy.c
+@@ -916,10 +916,10 @@ void phy_state_machine(struct work_struc
+               phydev->adjust_link(phydev->attached_dev);
+               break;
+       case PHY_RUNNING:
+-              /* Only register a CHANGE if we are polling and link changed
+-               * since latest checking.
++              /* Only register a CHANGE if we are polling or ignoring
++               * interrupts and link changed since latest checking.
+                */
+-              if (phydev->irq == PHY_POLL) {
++              if (!phy_interrupt_is_valid(phydev)) {
+                       old_link = phydev->link;
+                       err = phy_read_status(phydev);
+                       if (err)
+@@ -1019,13 +1019,8 @@ void phy_state_machine(struct work_struc
+       dev_dbg(&phydev->dev, "PHY state change %s -> %s\n",
+               phy_state_to_str(old_state), phy_state_to_str(phydev->state));
+-      /* Only re-schedule a PHY state machine change if we are polling the
+-       * PHY, if PHY_IGNORE_INTERRUPT is set, then we will be moving
+-       * between states from phy_mac_interrupt()
+-       */
+-      if (phydev->irq == PHY_POLL)
+-              queue_delayed_work(system_power_efficient_wq, &phydev->state_queue,
+-                                 PHY_STATE_TIME * HZ);
++      queue_delayed_work(system_power_efficient_wq, &phydev->state_queue,
++                         PHY_STATE_TIME * HZ);
+ }
+ void phy_mac_interrupt(struct phy_device *phydev, int new_link)
index 396b83be1c6c3f1bdca17906a3b5a91e1e4a2f7f..e43f1955984045d38813e792591de1f9b2b292d9 100644 (file)
@@ -1 +1,2 @@
 usb-serial-qcserial-add-dw5816e-support.patch
+revert-net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch