summaryrefslogtreecommitdiff
authorJiamin Ma <jiamin.ma@amlogic.com>2019-10-17 02:10:12 (GMT)
committer Jianxin Pan <jianxin.pan@amlogic.com>2019-10-18 09:54:15 (GMT)
commitdd3e030886e234798102ef6e725992f1ddf79e55 (patch)
tree5b065ffc4ba8a555aa1f61b7702a90f59f9b7021
parentc52ee10e92adabf8f0150c3fa3b6fb66e37c2e0a (diff)
downloadcommon-dd3e030886e234798102ef6e725992f1ddf79e55.zip
common-dd3e030886e234798102ef6e725992f1ddf79e55.tar.gz
common-dd3e030886e234798102ef6e725992f1ddf79e55.tar.bz2
vts_bug: workaround for BpfRaceTest.testRaceWithoutBarrier [1/1]
PD#SWPL-14181 Problem: VtsKernelNetBpfTest#BpfRaceTest.testRaceWithoutBarrier almost always fail for s905x2 based platform Solution: Add workaround for BpfRaceTest.testRaceWithoutBarrier Verify: U212 Change-Id: Ia82df3658d9115308d6aaa397d37a3dd6f6663c0 Signed-off-by: Jiamin Ma <jiamin.ma@amlogic.com>
Diffstat
-rw-r--r--kernel/bpf/helpers.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c
index 3991840..626fe1d 100644
--- a/kernel/bpf/helpers.c
+++ b/kernel/bpf/helpers.c
@@ -46,6 +46,16 @@ BPF_CALL_4(bpf_map_update_elem, struct bpf_map *, map, void *, key,
void *, value, u64, flags)
{
WARN_ON_ONCE(!rcu_read_lock_held());
+ /*
+ * Workaround for vts test VtsKernelNetBpfTest
+ * BpfRaceTest.testRaceWithoutBarrier
+ * With the 100us delay here, we can significantly
+ * increase the probability to access the old value
+ * for eBPF prog in this test case
+ */
+#ifdef CONFIG_AMLOGIC_MODIFY
+ udelay(100);
+#endif
return map->ops->map_update_elem(map, key, value, flags);
}