aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2020-12-19 13:11:48 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2020-12-19 13:11:48 +0100
commit8dcc75dbbe0a7b82c7c9a9388a49d1e32723d8a9 (patch)
treee1ad418df8affe71698827debf75ea2b3a1b8ef3
parentd2faea81c32ce04d061237e34cfad3c36e93be35 (diff)
downloadwireguard-linux-compat-8dcc75dbbe0a7b82c7c9a9388a49d1e32723d8a9.tar.gz
simd: detect -rt kernels >= 5.4
The 5.4 series of -rt kernels moved from PREEMPT_RT_BASE/PREEMPT_RT_FULL to PREEMPT_RT, so we have to account for it here. Otherwise users get scheduling-while-atomic splats. Reported-by: Erik Schuitema <erik@essd.nl> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--src/compat/simd/include/linux/simd.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compat/simd/include/linux/simd.h b/src/compat/simd/include/linux/simd.h
index c75c724..3ff8a02 100644
--- a/src/compat/simd/include/linux/simd.h
+++ b/src/compat/simd/include/linux/simd.h
@@ -25,7 +25,7 @@ typedef enum {
static inline void simd_get(simd_context_t *ctx)
{
- *ctx = !IS_ENABLED(CONFIG_PREEMPT_RT_BASE) && may_use_simd() ? HAVE_FULL_SIMD : HAVE_NO_SIMD;
+ *ctx = !IS_ENABLED(CONFIG_PREEMPT_RT) && !IS_ENABLED(CONFIG_PREEMPT_RT_BASE) && may_use_simd() ? HAVE_FULL_SIMD : HAVE_NO_SIMD;
}
static inline void simd_put(simd_context_t *ctx)