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);