aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic
diff options
context:
space:
mode:
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>2021-02-16 23:16:00 +0100
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>2021-02-16 23:46:30 +0100
commit99f2b464b4e550865c2a3288fa0b88db2869f798 (patch)
tree202eb53c38d16c800b95cec04d84470d9736d8e5 /target/linux/generic
parent0e407dfe8bac1475f8f963dff699e434bbbeb4d5 (diff)
downloadupstream-99f2b464b4e550865c2a3288fa0b88db2869f798.tar.gz
upstream-99f2b464b4e550865c2a3288fa0b88db2869f798.tar.bz2
upstream-99f2b464b4e550865c2a3288fa0b88db2869f798.zip
kernel: 5.10: fix busy wait loop in mediatek PPE code
Reapply changes added to 5.4 but not copied to 5.10: 3da4acaa7bba ("kernel: fix busy wait loop in mediatek PPE code") The intention is for the loop to timeout if the body does not succeed. The current logic calls time_is_before_jiffies(timeout) which is false until after the timeout, so the loop body never executes. time_is_after_jiffies(timeout) will return true until timeout is less than jiffies, which is the intended behavior here. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Diffstat (limited to 'target/linux/generic')
-rw-r--r--target/linux/generic/pending-5.10/770-15-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/linux/generic/pending-5.10/770-15-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch b/target/linux/generic/pending-5.10/770-15-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch
index fa4803211a..09282175b0 100644
--- a/target/linux/generic/pending-5.10/770-15-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch
+++ b/target/linux/generic/pending-5.10/770-15-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch
@@ -185,7 +185,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+{
+ unsigned long timeout = jiffies + HZ;
+
-+ while (time_is_before_jiffies(timeout)) {
++ while (time_is_after_jiffies(timeout)) {
+ if (!(ppe_r32(ppe, MTK_PPE_GLO_CFG) & MTK_PPE_GLO_CFG_BUSY))
+ return 0;
+