hw_breakpoint: Simplify list/idx mess in toggle_bp_slot() paths
authorOleg Nesterov <oleg@redhat.com>
Thu, 20 Jun 2013 15:50:11 +0000 (17:50 +0200)
committerIngo Molnar <mingo@kernel.org>
Thu, 20 Jun 2013 15:58:55 +0000 (17:58 +0200)
commite1ebe86203e6532eb5a0ae8f26ccae47aca548ae
treedc9464fa0779f4d45d79f360192a8cf533bb90aa
parentf070a4dba984975f6353c6f1d966da1a6ce4b86f
hw_breakpoint: Simplify list/idx mess in toggle_bp_slot() paths

The enable/disable logic in toggle_bp_slot() is not symmetrical
and imho very confusing. "old_count" in toggle_bp_task_slot() is
actually new_count because this bp was already removed from the
list.

Change toggle_bp_slot() to always call list_add/list_del after
toggle_bp_task_slot(). This way old_idx is task_bp_pinned() and
this entry should be decremented, new_idx is +/-weight and we
need to increment this element. The code/logic looks obvious.

Reported-by: Vince Weaver <vincent.weaver@maine.edu>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Link: http://lkml.kernel.org/r/20130620155011.GA6330@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/events/hw_breakpoint.c