aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlya Lipnitskiy <ilya.lipnitskiy@gmail.com>2021-02-07 20:17:12 -0800
committerFelix Fietkau <nbd@nbd.name>2021-02-15 08:13:16 +0100
commit3da4acaa7bba185489b968a140ecf327169db0bd (patch)
treeedd6ebeeb2f21b8f2af67569d2d28c2866a886ad
parentf378d81da6d1976ba3d304932cda4ff0cdd5f182 (diff)
downloadupstream-3da4acaa7bba185489b968a140ecf327169db0bd.tar.gz
upstream-3da4acaa7bba185489b968a140ecf327169db0bd.tar.bz2
upstream-3da4acaa7bba185489b968a140ecf327169db0bd.zip
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: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
-rw-r--r--target/linux/generic/pending-5.4/770-15-net-ethernet-mediatek-mtk_eth_soc-add-support-for-in.patch2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/linux/generic/pending-5.4/770-15-net-ethernet-mediatek-mtk_eth_soc-add-support-for-in.patch b/target/linux/generic/pending-5.4/770-15-net-ethernet-mediatek-mtk_eth_soc-add-support-for-in.patch
index d679e30bea..2614502f5a 100644
--- a/target/linux/generic/pending-5.4/770-15-net-ethernet-mediatek-mtk_eth_soc-add-support-for-in.patch
+++ b/target/linux/generic/pending-5.4/770-15-net-ethernet-mediatek-mtk_eth_soc-add-support-for-in.patch
@@ -183,7 +183,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;
+