| .. | .. |
|---|
| 43 | 43 | u64 ttbr0; /* saved TTBR0_EL1 */ |
|---|
| 44 | 44 | #endif |
|---|
| 45 | 45 | int preempt_count; /* 0 => preemptable, <0 => bug */ |
|---|
| 46 | + int preempt_lazy_count; /* 0 => preemptable, <0 => bug */ |
|---|
| 46 | 47 | #ifdef CONFIG_SHADOW_CALL_STACK |
|---|
| 47 | 48 | void *shadow_call_stack; |
|---|
| 48 | 49 | #endif |
|---|
| .. | .. |
|---|
| 79 | 80 | #define TIF_FOREIGN_FPSTATE 3 /* CPU's FP state is not current's */ |
|---|
| 80 | 81 | #define TIF_UPROBE 4 /* uprobe breakpoint or singlestep */ |
|---|
| 81 | 82 | #define TIF_FSCHECK 5 /* Check FS is USER_DS on return */ |
|---|
| 83 | +#define TIF_NEED_RESCHED_LAZY 6 |
|---|
| 82 | 84 | #define TIF_NOHZ 7 |
|---|
| 83 | 85 | #define TIF_SYSCALL_TRACE 8 |
|---|
| 84 | 86 | #define TIF_SYSCALL_AUDIT 9 |
|---|
| .. | .. |
|---|
| 98 | 100 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) |
|---|
| 99 | 101 | #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) |
|---|
| 100 | 102 | #define _TIF_FOREIGN_FPSTATE (1 << TIF_FOREIGN_FPSTATE) |
|---|
| 103 | +#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY) |
|---|
| 101 | 104 | #define _TIF_NOHZ (1 << TIF_NOHZ) |
|---|
| 102 | 105 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) |
|---|
| 103 | 106 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) |
|---|
| .. | .. |
|---|
| 111 | 114 | |
|---|
| 112 | 115 | #define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \ |
|---|
| 113 | 116 | _TIF_NOTIFY_RESUME | _TIF_FOREIGN_FPSTATE | \ |
|---|
| 114 | | - _TIF_UPROBE | _TIF_FSCHECK) |
|---|
| 117 | + _TIF_UPROBE | _TIF_FSCHECK | _TIF_NEED_RESCHED_LAZY) |
|---|
| 115 | 118 | |
|---|
| 119 | +#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY) |
|---|
| 116 | 120 | #define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ |
|---|
| 117 | 121 | _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \ |
|---|
| 118 | 122 | _TIF_NOHZ) |
|---|