blob: d1ac07a23979fdc96ce0dac11ed7b6efe2821de8 [file] [log] [blame]
Frederic Weisbecker6ba3c972012-07-11 20:26:35 +02001#ifndef _ASM_X86_RCU_H
2#define _ASM_X86_RCU_H
3
Frederic Weisbecker04304992012-07-11 20:26:38 +02004#ifndef __ASSEMBLY__
5
Frederic Weisbecker6ba3c972012-07-11 20:26:35 +02006#include <linux/rcupdate.h>
7#include <asm/ptrace.h>
8
9static inline void exception_enter(struct pt_regs *regs)
10{
11 rcu_user_exit();
12}
13
14static inline void exception_exit(struct pt_regs *regs)
15{
16#ifdef CONFIG_RCU_USER_QS
17 if (user_mode(regs))
18 rcu_user_enter();
19#endif
20}
21
Frederic Weisbecker04304992012-07-11 20:26:38 +020022#else /* __ASSEMBLY__ */
23
24#ifdef CONFIG_RCU_USER_QS
25# define SCHEDULE_USER call schedule_user
26#else
27# define SCHEDULE_USER call schedule
28#endif
29
30#endif /* !__ASSEMBLY__ */
31
Frederic Weisbecker6ba3c972012-07-11 20:26:35 +020032#endif