[PATCH] Fix sighand->siglock usage in kernel/acct.c
IRQs must be disabled before taking ->siglock. Noticed by lockdep. Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Cc: Arjan van de Ven <arjan@infradead.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
3e143475c2
commit
a4afee02a5
@ -488,7 +488,7 @@ static void do_acct_process(struct file *file)
|
||||
old_encode_dev(tty_devnum(current->signal->tty)) : 0;
|
||||
read_unlock(&tasklist_lock);
|
||||
|
||||
spin_lock(¤t->sighand->siglock);
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
ac.ac_utime = encode_comp_t(jiffies_to_AHZ(cputime_to_jiffies(pacct->ac_utime)));
|
||||
ac.ac_stime = encode_comp_t(jiffies_to_AHZ(cputime_to_jiffies(pacct->ac_stime)));
|
||||
ac.ac_flag = pacct->ac_flag;
|
||||
@ -496,7 +496,7 @@ static void do_acct_process(struct file *file)
|
||||
ac.ac_minflt = encode_comp_t(pacct->ac_minflt);
|
||||
ac.ac_majflt = encode_comp_t(pacct->ac_majflt);
|
||||
ac.ac_exitcode = pacct->ac_exitcode;
|
||||
spin_unlock(¤t->sighand->siglock);
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
ac.ac_io = encode_comp_t(0 /* current->io_usage */); /* %% */
|
||||
ac.ac_rw = encode_comp_t(ac.ac_io / 1024);
|
||||
ac.ac_swaps = encode_comp_t(0);
|
||||
|
Loading…
Reference in New Issue
Block a user