Skip to content

Commit b76808e

Browse files
palmer-dabbeltIngo Molnar
authored andcommitted
signals, sched: Change all uses of JOBCTL_* from 'int' to 'long'
c56fb6564dcd ("Fix a misaligned load inside ptrace_attach()") makes jobctl an "unsigned long". It makes sense to have the masks applied to it match that type. This is currently just a cosmetic change, but it will prevent the mask from being unexpectedly truncated if we ever end up with masks with more bits. One instance of "signr" is an int, but I left this alone because the mask ensures that it will never overflow. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Chris Metcalf <cmetcalf@ezchip.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Borislav Petkov <bp@alien8.de> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: bobby.prani@gmail.com Cc: oleg@redhat.com Cc: paulmck@linux.vnet.ibm.com Cc: richard@nod.at Cc: vdavydov@parallels.com Link: http://lkml.kernel.org/r/1430453997-32459-4-git-send-email-palmer@dabbelt.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 3289bdb commit b76808e

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

include/linux/sched.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2082,22 +2082,22 @@ TASK_PFA_CLEAR(SPREAD_SLAB, spread_slab)
20822082
#define JOBCTL_TRAPPING_BIT 21 /* switching to TRACED */
20832083
#define JOBCTL_LISTENING_BIT 22 /* ptracer is listening for events */
20842084

2085-
#define JOBCTL_STOP_DEQUEUED (1 << JOBCTL_STOP_DEQUEUED_BIT)
2086-
#define JOBCTL_STOP_PENDING (1 << JOBCTL_STOP_PENDING_BIT)
2087-
#define JOBCTL_STOP_CONSUME (1 << JOBCTL_STOP_CONSUME_BIT)
2088-
#define JOBCTL_TRAP_STOP (1 << JOBCTL_TRAP_STOP_BIT)
2089-
#define JOBCTL_TRAP_NOTIFY (1 << JOBCTL_TRAP_NOTIFY_BIT)
2090-
#define JOBCTL_TRAPPING (1 << JOBCTL_TRAPPING_BIT)
2091-
#define JOBCTL_LISTENING (1 << JOBCTL_LISTENING_BIT)
2085+
#define JOBCTL_STOP_DEQUEUED (1UL << JOBCTL_STOP_DEQUEUED_BIT)
2086+
#define JOBCTL_STOP_PENDING (1UL << JOBCTL_STOP_PENDING_BIT)
2087+
#define JOBCTL_STOP_CONSUME (1UL << JOBCTL_STOP_CONSUME_BIT)
2088+
#define JOBCTL_TRAP_STOP (1UL << JOBCTL_TRAP_STOP_BIT)
2089+
#define JOBCTL_TRAP_NOTIFY (1UL << JOBCTL_TRAP_NOTIFY_BIT)
2090+
#define JOBCTL_TRAPPING (1UL << JOBCTL_TRAPPING_BIT)
2091+
#define JOBCTL_LISTENING (1UL << JOBCTL_LISTENING_BIT)
20922092

20932093
#define JOBCTL_TRAP_MASK (JOBCTL_TRAP_STOP | JOBCTL_TRAP_NOTIFY)
20942094
#define JOBCTL_PENDING_MASK (JOBCTL_STOP_PENDING | JOBCTL_TRAP_MASK)
20952095

20962096
extern bool task_set_jobctl_pending(struct task_struct *task,
2097-
unsigned int mask);
2097+
unsigned long mask);
20982098
extern void task_clear_jobctl_trapping(struct task_struct *task);
20992099
extern void task_clear_jobctl_pending(struct task_struct *task,
2100-
unsigned int mask);
2100+
unsigned long mask);
21012101

21022102
static inline void rcu_copy_process(struct task_struct *p)
21032103
{

kernel/signal.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ static inline void print_dropped_signal(int sig)
245245
* RETURNS:
246246
* %true if @mask is set, %false if made noop because @task was dying.
247247
*/
248-
bool task_set_jobctl_pending(struct task_struct *task, unsigned int mask)
248+
bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask)
249249
{
250250
BUG_ON(mask & ~(JOBCTL_PENDING_MASK | JOBCTL_STOP_CONSUME |
251251
JOBCTL_STOP_SIGMASK | JOBCTL_TRAPPING));
@@ -297,7 +297,7 @@ void task_clear_jobctl_trapping(struct task_struct *task)
297297
* CONTEXT:
298298
* Must be called with @task->sighand->siglock held.
299299
*/
300-
void task_clear_jobctl_pending(struct task_struct *task, unsigned int mask)
300+
void task_clear_jobctl_pending(struct task_struct *task, unsigned long mask)
301301
{
302302
BUG_ON(mask & ~JOBCTL_PENDING_MASK);
303303

@@ -2000,7 +2000,7 @@ static bool do_signal_stop(int signr)
20002000
struct signal_struct *sig = current->signal;
20012001

20022002
if (!(current->jobctl & JOBCTL_STOP_PENDING)) {
2003-
unsigned int gstop = JOBCTL_STOP_PENDING | JOBCTL_STOP_CONSUME;
2003+
unsigned long gstop = JOBCTL_STOP_PENDING | JOBCTL_STOP_CONSUME;
20042004
struct task_struct *t;
20052005

20062006
/* signr will be recorded in task->jobctl for retries */

0 commit comments

Comments
 (0)