kernel: remove checking for TIF_NOTIFY_SIGNAL
It's available everywhere now, no need to check or add dummy defines. Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Родитель
98b89b649f
Коммит
e296dc4996
|
@ -37,10 +37,6 @@
|
||||||
# define _TIF_UPROBE (0)
|
# define _TIF_UPROBE (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef _TIF_NOTIFY_SIGNAL
|
|
||||||
# define _TIF_NOTIFY_SIGNAL (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TIF flags handled in syscall_enter_from_user_mode()
|
* TIF flags handled in syscall_enter_from_user_mode()
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -360,7 +360,6 @@ static inline int task_sigpending(struct task_struct *p)
|
||||||
|
|
||||||
static inline int signal_pending(struct task_struct *p)
|
static inline int signal_pending(struct task_struct *p)
|
||||||
{
|
{
|
||||||
#if defined(TIF_NOTIFY_SIGNAL)
|
|
||||||
/*
|
/*
|
||||||
* TIF_NOTIFY_SIGNAL isn't really a signal, but it requires the same
|
* TIF_NOTIFY_SIGNAL isn't really a signal, but it requires the same
|
||||||
* behavior in terms of ensuring that we break out of wait loops
|
* behavior in terms of ensuring that we break out of wait loops
|
||||||
|
@ -368,7 +367,6 @@ static inline int signal_pending(struct task_struct *p)
|
||||||
*/
|
*/
|
||||||
if (unlikely(test_tsk_thread_flag(p, TIF_NOTIFY_SIGNAL)))
|
if (unlikely(test_tsk_thread_flag(p, TIF_NOTIFY_SIGNAL)))
|
||||||
return 1;
|
return 1;
|
||||||
#endif
|
|
||||||
return task_sigpending(p);
|
return task_sigpending(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -205,12 +205,10 @@ static inline void tracehook_notify_resume(struct pt_regs *regs)
|
||||||
*/
|
*/
|
||||||
static inline void tracehook_notify_signal(void)
|
static inline void tracehook_notify_signal(void)
|
||||||
{
|
{
|
||||||
#if defined(TIF_NOTIFY_SIGNAL)
|
|
||||||
clear_thread_flag(TIF_NOTIFY_SIGNAL);
|
clear_thread_flag(TIF_NOTIFY_SIGNAL);
|
||||||
smp_mb__after_atomic();
|
smp_mb__after_atomic();
|
||||||
if (current->task_works)
|
if (current->task_works)
|
||||||
task_work_run();
|
task_work_run();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -218,11 +216,9 @@ static inline void tracehook_notify_signal(void)
|
||||||
*/
|
*/
|
||||||
static inline void set_notify_signal(struct task_struct *task)
|
static inline void set_notify_signal(struct task_struct *task)
|
||||||
{
|
{
|
||||||
#if defined(TIF_NOTIFY_SIGNAL)
|
|
||||||
if (!test_and_set_tsk_thread_flag(task, TIF_NOTIFY_SIGNAL) &&
|
if (!test_and_set_tsk_thread_flag(task, TIF_NOTIFY_SIGNAL) &&
|
||||||
!wake_up_state(task, TASK_INTERRUPTIBLE))
|
!wake_up_state(task, TASK_INTERRUPTIBLE))
|
||||||
kick_process(task);
|
kick_process(task);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* <linux/tracehook.h> */
|
#endif /* <linux/tracehook.h> */
|
||||||
|
|
|
@ -2535,14 +2535,12 @@ bool get_signal(struct ksignal *ksig)
|
||||||
* that the arch handlers don't all have to do it. If we get here
|
* that the arch handlers don't all have to do it. If we get here
|
||||||
* without TIF_SIGPENDING, just exit after running signal work.
|
* without TIF_SIGPENDING, just exit after running signal work.
|
||||||
*/
|
*/
|
||||||
#ifdef TIF_NOTIFY_SIGNAL
|
|
||||||
if (!IS_ENABLED(CONFIG_GENERIC_ENTRY)) {
|
if (!IS_ENABLED(CONFIG_GENERIC_ENTRY)) {
|
||||||
if (test_thread_flag(TIF_NOTIFY_SIGNAL))
|
if (test_thread_flag(TIF_NOTIFY_SIGNAL))
|
||||||
tracehook_notify_signal();
|
tracehook_notify_signal();
|
||||||
if (!task_sigpending(current))
|
if (!task_sigpending(current))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if (unlikely(uprobe_deny_signal()))
|
if (unlikely(uprobe_deny_signal()))
|
||||||
return false;
|
return false;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче