Skip to content

Commit 8092326

Browse files
compudjPeter Zijlstra
authored andcommitted
sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask
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: 2a36ab7 ("rseq/membarrier: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ") Signed-off-by: Mathieu Desnoyers <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Cc: <[email protected]> # 5.10+ Link: https://lkml.kernel.org/r/[email protected]
1 parent 0e38724 commit 8092326

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

kernel/sched/membarrier.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,19 +147,20 @@
147147
#endif
148148

149149
#ifdef CONFIG_RSEQ
150-
#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ_BITMASK \
150+
#define MEMBARRIER_PRIVATE_EXPEDITED_RSEQ_BITMASK \
151151
(MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ \
152-
| MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ_BITMASK)
152+
| MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ)
153153
#else
154-
#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ_BITMASK 0
154+
#define MEMBARRIER_PRIVATE_EXPEDITED_RSEQ_BITMASK 0
155155
#endif
156156

157157
#define MEMBARRIER_CMD_BITMASK \
158158
(MEMBARRIER_CMD_GLOBAL | MEMBARRIER_CMD_GLOBAL_EXPEDITED \
159159
| MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED \
160160
| MEMBARRIER_CMD_PRIVATE_EXPEDITED \
161161
| MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED \
162-
| MEMBARRIER_PRIVATE_EXPEDITED_SYNC_CORE_BITMASK)
162+
| MEMBARRIER_PRIVATE_EXPEDITED_SYNC_CORE_BITMASK \
163+
| MEMBARRIER_PRIVATE_EXPEDITED_RSEQ_BITMASK)
163164

164165
static void ipi_mb(void *info)
165166
{

0 commit comments

Comments
 (0)