kmod-kvdo/fix-smp_read_barrier_depends.patch
2020-11-11 10:27:25 +08:00

42 lines
1.4 KiB
Diff

From efdcec17c8c1548d062010cc7ed7e163e7c25e3c Mon Sep 17 00:00:00 2001
From: Andrew Walsh <awalsh@redhat.com>
Date: Thu, 3 Sep 2020 17:52:49 -0400
Subject: [PATCH] Eliminated obsolete function smp_read_barrier_depends.
<Author: jwiele@redhat.com>
In Kernels newer than 5.9 or so, smp_read_barrier_depends has
been removed because its functionality is provided by
READ_ONCE. See: https://lkml.org/lkml/2019/11/8/1021
We provide a user space implementation that is empty for the
four primary platforms we test on. That can be deleted. Some
additional barriers can be added if we find that some platform
requires them.
Pair: sweeettea
.../funnelQueue.c
Replaced the call to smp_read_barrier_depends with a comment
noting that an additional barrier may be needed in the
future for some platforms such as Alpha.
---
uds/util/funnelQueue.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/uds/util/funnelQueue.c b/uds/util/funnelQueue.c
index 922c74e..2464716 100644
--- a/uds/util/funnelQueue.c
+++ b/uds/util/funnelQueue.c
@@ -74,7 +74,9 @@ static FunnelQueueEntry *getOldest(FunnelQueue *queue)
// without breaking the queue invariants.
oldest = next;
queue->oldest = oldest;
- smp_read_barrier_depends();
+ // XXX Some platforms such as Alpha may require an
+ // additional barrier here. See
+ // https://lkml.org/lkml/2019/11/8/1021
next = oldest->next;
}