diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-12-10 15:35:10 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-12-11 10:28:08 +0100 |
commit | bb6eddf7676e1c1f3e637aa93c5224488d99036f (patch) | |
tree | 3256cb7ea6954f28b0bb3ccee2db570e3d0ff762 /kernel/timer.c | |
parent | e9c0748b687aa70179a9e6d8ffc24b2874fe350b (diff) |
clockevents: Prevent clockevent_devices list corruption on cpu hotplug
Xiaotian Feng triggered a list corruption in the clock events list on
CPU hotplug and debugged the root cause.
If a CPU registers more than one per cpu clock event device, then only
the active clock event device is removed on CPU_DEAD. The unused
devices are kept in the clock events device list.
On CPU up the clock event devices are registered again, which means
that we list_add an already enqueued list_head. That results in list
corruption.
Resolve this by removing all devices which are associated to the dead
CPU on CPU_DEAD.
Reported-by: Xiaotian Feng <dfeng@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Xiaotian Feng <dfeng@redhat.com>
Cc: stable@kernel.org
Diffstat (limited to 'kernel/timer.c')
0 files changed, 0 insertions, 0 deletions