Skip to content

Commit f962989

Browse files
committed
loongarch: Use generic TIF bits
No point in defining generic items and the upcoming RSEQ optimizations are only available with this _and_ the generic entry infrastructure, which is already used by loongarch. So no further action required here. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 parent c7ac5a0 commit f962989

2 files changed

Lines changed: 35 additions & 42 deletions

File tree

arch/loongarch/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ config LOONGARCH
140140
select HAVE_EBPF_JIT
141141
select HAVE_EFFICIENT_UNALIGNED_ACCESS if !ARCH_STRICT_ALIGN
142142
select HAVE_EXIT_THREAD
143+
select HAVE_GENERIC_TIF_BITS
143144
select HAVE_GUP_FAST
144145
select HAVE_FTRACE_GRAPH_FUNC
145146
select HAVE_FUNCTION_ARG_ACCESS_API

arch/loongarch/include/asm/thread_info.h

Lines changed: 34 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -65,50 +65,42 @@ register unsigned long current_stack_pointer __asm__("$sp");
6565
* access
6666
* - pending work-to-be-done flags are in LSW
6767
* - other flags in MSW
68+
*
69+
* Tell the generic TIF infrastructure which special bits loongarch supports
6870
*/
69-
#define TIF_NEED_RESCHED 0 /* rescheduling necessary */
70-
#define TIF_NEED_RESCHED_LAZY 1 /* lazy rescheduling necessary */
71-
#define TIF_SIGPENDING 2 /* signal pending */
72-
#define TIF_NOTIFY_RESUME 3 /* callback before returning to user */
73-
#define TIF_NOTIFY_SIGNAL 4 /* signal notifications exist */
74-
#define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */
75-
#define TIF_NOHZ 6 /* in adaptive nohz mode */
76-
#define TIF_UPROBE 7 /* breakpointed or singlestepping */
77-
#define TIF_USEDFPU 8 /* FPU was used by this task this quantum (SMP) */
78-
#define TIF_USEDSIMD 9 /* SIMD has been used this quantum */
79-
#define TIF_MEMDIE 10 /* is terminating due to OOM killer */
80-
#define TIF_FIXADE 11 /* Fix address errors in software */
81-
#define TIF_LOGADE 12 /* Log address errors to syslog */
82-
#define TIF_32BIT_REGS 13 /* 32-bit general purpose registers */
83-
#define TIF_32BIT_ADDR 14 /* 32-bit address space */
84-
#define TIF_LOAD_WATCH 15 /* If set, load watch registers */
85-
#define TIF_SINGLESTEP 16 /* Single Step */
86-
#define TIF_LSX_CTX_LIVE 17 /* LSX context must be preserved */
87-
#define TIF_LASX_CTX_LIVE 18 /* LASX context must be preserved */
88-
#define TIF_USEDLBT 19 /* LBT was used by this task this quantum (SMP) */
89-
#define TIF_LBT_CTX_LIVE 20 /* LBT context must be preserved */
90-
#define TIF_PATCH_PENDING 21 /* pending live patching update */
71+
#define HAVE_TIF_NEED_RESCHED_LAZY
72+
#define HAVE_TIF_RESTORE_SIGMASK
73+
74+
#include <asm-generic/thread_info_tif.h>
75+
76+
/* Architecture specific bits */
77+
#define TIF_NOHZ 16 /* in adaptive nohz mode */
78+
#define TIF_USEDFPU 17 /* FPU was used by this task this quantum (SMP) */
79+
#define TIF_USEDSIMD 18 /* SIMD has been used this quantum */
80+
#define TIF_FIXADE 10 /* Fix address errors in software */
81+
#define TIF_LOGADE 20 /* Log address errors to syslog */
82+
#define TIF_32BIT_REGS 21 /* 32-bit general purpose registers */
83+
#define TIF_32BIT_ADDR 22 /* 32-bit address space */
84+
#define TIF_LOAD_WATCH 23 /* If set, load watch registers */
85+
#define TIF_SINGLESTEP 24 /* Single Step */
86+
#define TIF_LSX_CTX_LIVE 25 /* LSX context must be preserved */
87+
#define TIF_LASX_CTX_LIVE 26 /* LASX context must be preserved */
88+
#define TIF_USEDLBT 27 /* LBT was used by this task this quantum (SMP) */
89+
#define TIF_LBT_CTX_LIVE 28 /* LBT context must be preserved */
9190

92-
#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
93-
#define _TIF_NEED_RESCHED_LAZY (1<<TIF_NEED_RESCHED_LAZY)
94-
#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
95-
#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
96-
#define _TIF_NOTIFY_SIGNAL (1<<TIF_NOTIFY_SIGNAL)
97-
#define _TIF_NOHZ (1<<TIF_NOHZ)
98-
#define _TIF_UPROBE (1<<TIF_UPROBE)
99-
#define _TIF_USEDFPU (1<<TIF_USEDFPU)
100-
#define _TIF_USEDSIMD (1<<TIF_USEDSIMD)
101-
#define _TIF_FIXADE (1<<TIF_FIXADE)
102-
#define _TIF_LOGADE (1<<TIF_LOGADE)
103-
#define _TIF_32BIT_REGS (1<<TIF_32BIT_REGS)
104-
#define _TIF_32BIT_ADDR (1<<TIF_32BIT_ADDR)
105-
#define _TIF_LOAD_WATCH (1<<TIF_LOAD_WATCH)
106-
#define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP)
107-
#define _TIF_LSX_CTX_LIVE (1<<TIF_LSX_CTX_LIVE)
108-
#define _TIF_LASX_CTX_LIVE (1<<TIF_LASX_CTX_LIVE)
109-
#define _TIF_USEDLBT (1<<TIF_USEDLBT)
110-
#define _TIF_LBT_CTX_LIVE (1<<TIF_LBT_CTX_LIVE)
111-
#define _TIF_PATCH_PENDING (1<<TIF_PATCH_PENDING)
91+
#define _TIF_NOHZ BIT(TIF_NOHZ)
92+
#define _TIF_USEDFPU BIT(TIF_USEDFPU)
93+
#define _TIF_USEDSIMD BIT(TIF_USEDSIMD)
94+
#define _TIF_FIXADE BIT(TIF_FIXADE)
95+
#define _TIF_LOGADE BIT(TIF_LOGADE)
96+
#define _TIF_32BIT_REGS BIT(TIF_32BIT_REGS)
97+
#define _TIF_32BIT_ADDR BIT(TIF_32BIT_ADDR)
98+
#define _TIF_LOAD_WATCH BIT(TIF_LOAD_WATCH)
99+
#define _TIF_SINGLESTEP BIT(TIF_SINGLESTEP)
100+
#define _TIF_LSX_CTX_LIVE BIT(TIF_LSX_CTX_LIVE)
101+
#define _TIF_LASX_CTX_LIVE BIT(TIF_LASX_CTX_LIVE)
102+
#define _TIF_USEDLBT BIT(TIF_USEDLBT)
103+
#define _TIF_LBT_CTX_LIVE BIT(TIF_LBT_CTX_LIVE)
112104

113105
#endif /* __KERNEL__ */
114106
#endif /* _ASM_THREAD_INFO_H */

0 commit comments

Comments
 (0)