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