kernel: disable pre-emption when accessing per-cpu variables
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <socks/status.h>
|
||||
#include <socks/compiler.h>
|
||||
#include <socks/sched.h>
|
||||
|
||||
#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);
|
||||
|
||||
Reference in New Issue
Block a user