Messages in this thread Patch in this message | | | Subject | [PATCH] Fix sighand->siglock usage in kernel/acct.c | From | OGAWA Hirofumi <> | Date | Wed, 12 Jul 2006 02:09:05 +0900 |
| |
IRQ must be disabled before taking ->siglock.
Noticed by lockdep.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> ---
kernel/acct.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff -puN kernel/acct.c~acct-lockdep-fix kernel/acct.c --- linux-2.6/kernel/acct.c~acct-lockdep-fix 2006-07-12 01:35:28.000000000 +0900 +++ linux-2.6-hirofumi/kernel/acct.c 2006-07-12 01:35:28.000000000 +0900 @@ -488,7 +488,7 @@ static void do_acct_process(struct 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 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); _ -- OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |