sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask
commit 809232619f5b15e31fb3563985e705454f32621f upstream.
The membarrier command MEMBARRIER_CMD_QUERY allows querying the
available membarrier commands. When the membarrier-rseq fence commands
were added, a new MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ_BITMASK was
introduced with the intent to expose them with the MEMBARRIER_CMD_QUERY
command, the but it was never added to MEMBARRIER_CMD_BITMASK.
The membarrier-rseq fence commands are therefore not wired up with the
query command.
Rename MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ_BITMASK to
MEMBARRIER_PRIVATE_EXPEDITED_RSEQ_BITMASK (the bitmask is not a command
per-se), and change the erroneous
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ_BITMASK (which does not
actually exist) to MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ.
Wire up MEMBARRIER_PRIVATE_EXPEDITED_RSEQ_BITMASK in
MEMBARRIER_CMD_BITMASK. Fixing this allows discovering availability of
the membarrier-rseq fence feature.
Fixes: 2a36ab717e
("rseq/membarrier: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ")
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: <stable@vger.kernel.org> # 5.10+
Link: https://lkml.kernel.org/r/20220117203010.30129-1-mathieu.desnoyers@efficios.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
afbde455eb
commit
791e5d5daa
@@ -19,11 +19,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_RSEQ
|
#ifdef CONFIG_RSEQ
|
||||||
#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ_BITMASK \
|
#define MEMBARRIER_PRIVATE_EXPEDITED_RSEQ_BITMASK \
|
||||||
(MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ \
|
(MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ \
|
||||||
| MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ_BITMASK)
|
| MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ)
|
||||||
#else
|
#else
|
||||||
#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ_BITMASK 0
|
#define MEMBARRIER_PRIVATE_EXPEDITED_RSEQ_BITMASK 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MEMBARRIER_CMD_BITMASK \
|
#define MEMBARRIER_CMD_BITMASK \
|
||||||
@@ -31,7 +31,8 @@
|
|||||||
| MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED \
|
| MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED \
|
||||||
| MEMBARRIER_CMD_PRIVATE_EXPEDITED \
|
| MEMBARRIER_CMD_PRIVATE_EXPEDITED \
|
||||||
| MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED \
|
| MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED \
|
||||||
| MEMBARRIER_PRIVATE_EXPEDITED_SYNC_CORE_BITMASK)
|
| MEMBARRIER_PRIVATE_EXPEDITED_SYNC_CORE_BITMASK \
|
||||||
|
| MEMBARRIER_PRIVATE_EXPEDITED_RSEQ_BITMASK)
|
||||||
|
|
||||||
static void ipi_mb(void *info)
|
static void ipi_mb(void *info)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user