From 748182ee03a0c8273e7a4444e4398e55e7575530 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 12 May 2020 10:32:16 +0200 Subject: [PATCH] 4.4-stable patches added patches: revert-net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch --- ...lling-phy-with-phy_ignore_interrupts.patch | 54 +++++++++++++++++++ queue-4.4/series | 1 + 2 files changed, 55 insertions(+) create mode 100644 queue-4.4/revert-net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch 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 index 00000000000..2093a84e28c --- /dev/null +++ b/queue-4.4/revert-net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch @@ -0,0 +1,54 @@ +From 3723e384444a064aef4e20aacd148e54b3351c41 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Tue, 12 May 2020 10:29:52 +0200 +Subject: Revert "net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS" + +From: Greg Kroah-Hartman + +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" +Reported-by: Guillaume Tucker +Cc: Florian Fainelli +Cc: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + 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) diff --git a/queue-4.4/series b/queue-4.4/series index 396b83be1c6..e43f1955984 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -1 +1,2 @@ usb-serial-qcserial-add-dw5816e-support.patch +revert-net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch -- 2.47.3