From 13c06a827e67868c89ea99635fbde6ffee03dfc3 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Tue, 28 Mar 2023 21:41:07 +0100 Subject: [PATCH] kernel: disable pre-emption when accessing per-cpu variables --- include/socks/percpu.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/include/socks/percpu.h b/include/socks/percpu.h index cc8e98d..b97b3ec 100644 --- a/include/socks/percpu.h +++ b/include/socks/percpu.h @@ -3,6 +3,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -11,9 +12,13 @@ extern "C" { #define DEFINE_PERCPU_VAR(type, name) \ __section(".data.percpu") type name -#define percpu_get(var) __percpu_get(var) +#define percpu_get(var) \ + __extension__({ \ + preempt_disable(); \ + __percpu_get(var); \ + }) -#define percpu_put(var) +#define percpu_put(var) preempt_enable(); extern kern_status_t init_per_cpu_areas(void); extern void *__percpu_get(void *var);