]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "sched, autogroup: Stop going ahead if autogroup is disabled"
authorMike Galbraith <efault@gmx.de>
Mon, 3 Dec 2012 05:25:25 +0000 (06:25 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 3 Dec 2012 19:10:24 +0000 (11:10 -0800)
commite25136d64990dca57a82eeb464a7ec33774e17c4
treeb5121d6016bf20b46ae0fdc760b9e2f4e836bf21
parentf29b334abb25d67cf5657924145350690d31168c
Revert "sched, autogroup: Stop going ahead if autogroup is disabled"

This reverts commit 6ff4c90f02fd70d3e28e2af17bcf013224234d62.

Between commits 3b46629c16e3 ("sched: Fix race in task_group()") and
6ff4c90f02fd ("sched, autogroup: Stop going ahead if autogroup is
disabled"), autogroup is a wreck.

With both applied, all you have to do to crash a box is disable
autogroup during boot up, then reboot..  boom, NULL pointer dereference
due to commit 6ff4c90f02fd not allowing autogroup to move things, and
commit 3b46629c16e3 making that the only way to switch runqueues:

  BUG: unable to handle kernel NULL pointer dereference at           (null)
  IP: [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
  Pid: 7047, comm: systemd-user-se Not tainted 3.6.8-smp #7 MEDIONPC MS-7502/MS-7502
  RIP: effective_load.isra.43+0x50/0x90
  Process systemd-user-se (pid: 7047, threadinfo ffff880221dde000, task ffff88022618b3a0)
  Call Trace:
    select_task_rq_fair+0x255/0x780
    try_to_wake_up+0x156/0x2c0
    wake_up_state+0xb/0x10
    signal_wake_up+0x28/0x40
    complete_signal+0x1d6/0x250
    __send_signal+0x170/0x310
    send_signal+0x40/0x80
    do_send_sig_info+0x47/0x90
    group_send_sig_info+0x4a/0x70
    kill_pid_info+0x3a/0x60
    sys_kill+0x97/0x1a0
    ? vfs_read+0x120/0x160
    ? sys_read+0x45/0x90
    system_call_fastpath+0x16/0x1b
  Code: 49 0f af 41 50 31 d2 49 f7 f0 48 83 f8 01 48 0f 46 c6 48 2b 07 48 8b bf 40 01 00 00 48 85 ff 74 3a 45 31 c0 48 8b 8f 50 01 00 00 <48> 8b 11 4c 8b 89 80 00 00 00 49 89 d2 48 01 d0 45 8b 59 58 4c
  RIP  [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
   RSP <ffff880221ddfbd8>
  CR2: 0000000000000000

Signed-off-by: Mike Galbraith <efault@gmx.de>
Acked-by: Ingo Molnar <mingo@kernel.org>
Cc: Yong Zhang <yong.zhang0@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: stable@vger.kernel.org # 2.6.39+
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/sched/auto_group.c
kernel/sched/auto_group.h