diff options
author | Oleg Nesterov <oleg@redhat.com> | 2013-06-20 17:50:09 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-06-20 17:57:01 +0200 |
commit | c790b0ad23f427c7522ffed264706238c57c007e (patch) | |
tree | b05dfd247ea14cbba3931b44614635b0de4760fd /drivers/edac/mv64x60_edac.h | |
parent | 8b4d801b2b123b6c09742f861fe44a8527b84d47 (diff) | |
download | op-kernel-dev-c790b0ad23f427c7522ffed264706238c57c007e.zip op-kernel-dev-c790b0ad23f427c7522ffed264706238c57c007e.tar.gz |
hw_breakpoint: Use cpu_possible_mask in {reserve,release}_bp_slot()
fetch_bp_busy_slots() and toggle_bp_slot() use
for_each_online_cpu(), this is obviously wrong wrt cpu_up() or
cpu_down(), we can over/under account the per-cpu numbers.
For example:
# echo 0 >> /sys/devices/system/cpu/cpu1/online
# perf record -e mem:0x10 -p 1 &
# echo 1 >> /sys/devices/system/cpu/cpu1/online
# perf record -e mem:0x10,mem:0x10,mem:0x10,mem:0x10 -C1 -a &
# taskset -p 0x2 1
triggers the same WARN_ONCE("Can't find any breakpoint slot") in
arch_install_hw_breakpoint().
Reported-by: Vince Weaver <vincent.weaver@maine.edu>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: <stable@vger.kernel.org>
Link: http://lkml.kernel.org/r/20130620155009.GA6327@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/edac/mv64x60_edac.h')
0 files changed, 0 insertions, 0 deletions