| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * arch/arm/include/asm/thread_info.h |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright (C) 2002 Russell King. |
|---|
| 5 | | - * |
|---|
| 6 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 7 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 8 | | - * published by the Free Software Foundation. |
|---|
| 9 | 6 | */ |
|---|
| 10 | 7 | #ifndef __ASM_ARM_THREAD_INFO_H |
|---|
| 11 | 8 | #define __ASM_ARM_THREAD_INFO_H |
|---|
| .. | .. |
|---|
| 49 | 46 | struct thread_info { |
|---|
| 50 | 47 | unsigned long flags; /* low level flags */ |
|---|
| 51 | 48 | int preempt_count; /* 0 => preemptable, <0 => bug */ |
|---|
| 52 | | - int preempt_lazy_count; /* 0 => preemptable, <0 => bug */ |
|---|
| 53 | 49 | mm_segment_t addr_limit; /* address limit */ |
|---|
| 54 | 50 | struct task_struct *task; /* main task structure */ |
|---|
| 55 | 51 | __u32 cpu; /* cpu */ |
|---|
| 56 | 52 | __u32 cpu_domain; /* cpu domain */ |
|---|
| 53 | +#ifdef CONFIG_STACKPROTECTOR_PER_TASK |
|---|
| 54 | + unsigned long stack_canary; |
|---|
| 55 | +#endif |
|---|
| 57 | 56 | struct cpu_context_save cpu_context; /* cpu context */ |
|---|
| 58 | 57 | __u32 syscall; /* syscall number */ |
|---|
| 59 | 58 | __u8 used_cp[16]; /* thread used copro */ |
|---|
| .. | .. |
|---|
| 75 | 74 | .preempt_count = INIT_PREEMPT_COUNT, \ |
|---|
| 76 | 75 | .addr_limit = KERNEL_DS, \ |
|---|
| 77 | 76 | } |
|---|
| 78 | | - |
|---|
| 79 | | -/* |
|---|
| 80 | | - * how to get the current stack pointer in C |
|---|
| 81 | | - */ |
|---|
| 82 | | -register unsigned long current_stack_pointer asm ("sp"); |
|---|
| 83 | 77 | |
|---|
| 84 | 78 | /* |
|---|
| 85 | 79 | * how to get the thread information struct from C |
|---|
| .. | .. |
|---|
| 132 | 126 | * thread information flags: |
|---|
| 133 | 127 | * TIF_USEDFPU - FPU was used by this task this quantum (SMP) |
|---|
| 134 | 128 | * TIF_POLLING_NRFLAG - true if poll_idle() is polling TIF_NEED_RESCHED |
|---|
| 129 | + * |
|---|
| 130 | + * Any bit in the range of 0..15 will cause do_work_pending() to be invoked. |
|---|
| 135 | 131 | */ |
|---|
| 136 | 132 | #define TIF_SIGPENDING 0 /* signal pending */ |
|---|
| 137 | 133 | #define TIF_NEED_RESCHED 1 /* rescheduling necessary */ |
|---|
| 138 | 134 | #define TIF_NOTIFY_RESUME 2 /* callback before returning to user */ |
|---|
| 139 | 135 | #define TIF_UPROBE 3 /* breakpointed or singlestepping */ |
|---|
| 140 | | -#define TIF_SYSCALL_TRACE 4 /* syscall trace active */ |
|---|
| 141 | | -#define TIF_SYSCALL_AUDIT 5 /* syscall auditing active */ |
|---|
| 142 | | -#define TIF_SYSCALL_TRACEPOINT 6 /* syscall tracepoint instrumentation */ |
|---|
| 143 | | -#define TIF_SECCOMP 8 /* seccomp syscall filtering active */ |
|---|
| 144 | | -#define TIF_NEED_RESCHED_LAZY 7 |
|---|
| 136 | +#define TIF_NOTIFY_SIGNAL 4 /* signal notifications exist */ |
|---|
| 145 | 137 | |
|---|
| 146 | | -#define TIF_NOHZ 12 /* in adaptive nohz mode */ |
|---|
| 147 | 138 | #define TIF_USING_IWMMXT 17 |
|---|
| 148 | 139 | #define TIF_MEMDIE 18 /* is terminating due to OOM killer */ |
|---|
| 149 | | -#define TIF_RESTORE_SIGMASK 20 |
|---|
| 140 | +#define TIF_RESTORE_SIGMASK 19 |
|---|
| 141 | +#define TIF_SYSCALL_TRACE 20 /* syscall trace active */ |
|---|
| 142 | +#define TIF_SYSCALL_AUDIT 21 /* syscall auditing active */ |
|---|
| 143 | +#define TIF_SYSCALL_TRACEPOINT 22 /* syscall tracepoint instrumentation */ |
|---|
| 144 | +#define TIF_SECCOMP 23 /* seccomp syscall filtering active */ |
|---|
| 145 | + |
|---|
| 150 | 146 | |
|---|
| 151 | 147 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) |
|---|
| 152 | 148 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) |
|---|
| 153 | 149 | #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) |
|---|
| 154 | | -#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY) |
|---|
| 155 | 150 | #define _TIF_UPROBE (1 << TIF_UPROBE) |
|---|
| 156 | 151 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) |
|---|
| 157 | 152 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) |
|---|
| 158 | 153 | #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT) |
|---|
| 159 | 154 | #define _TIF_SECCOMP (1 << TIF_SECCOMP) |
|---|
| 155 | +#define _TIF_NOTIFY_SIGNAL (1 << TIF_NOTIFY_SIGNAL) |
|---|
| 160 | 156 | #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT) |
|---|
| 161 | 157 | |
|---|
| 162 | 158 | /* Checks for any syscall work in entry-common.S */ |
|---|
| .. | .. |
|---|
| 168 | 164 | */ |
|---|
| 169 | 165 | #define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \ |
|---|
| 170 | 166 | _TIF_NOTIFY_RESUME | _TIF_UPROBE | \ |
|---|
| 171 | | - _TIF_NEED_RESCHED_LAZY) |
|---|
| 167 | + _TIF_NOTIFY_SIGNAL) |
|---|
| 172 | 168 | |
|---|
| 173 | 169 | #endif /* __KERNEL__ */ |
|---|
| 174 | 170 | #endif /* __ASM_ARM_THREAD_INFO_H */ |
|---|