| .. | .. |
|---|
| 4 | 4 | |
|---|
| 5 | 5 | #include <linux/thread_info.h> |
|---|
| 6 | 6 | |
|---|
| 7 | +#if defined CONFIG_PREEMPT_RT_FULL && defined CONFIG_HIGHMEM |
|---|
| 8 | +void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p); |
|---|
| 9 | +#else |
|---|
| 10 | +static inline void |
|---|
| 11 | +switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) { } |
|---|
| 12 | +#endif |
|---|
| 13 | + |
|---|
| 7 | 14 | /* |
|---|
| 8 | 15 | * For v7 SMP cores running a preemptible kernel we may be pre-empted |
|---|
| 9 | 16 | * during a TLB maintenance operation, so execute an inner-shareable dsb |
|---|
| .. | .. |
|---|
| 26 | 33 | #define switch_to(prev,next,last) \ |
|---|
| 27 | 34 | do { \ |
|---|
| 28 | 35 | __complete_pending_tlbi(); \ |
|---|
| 36 | + switch_kmaps(prev, next); \ |
|---|
| 29 | 37 | last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ |
|---|
| 30 | 38 | } while (0) |
|---|
| 31 | 39 | |
|---|