• Thomas Gleixner's avatar
    cpu/hotplug: Rework callback invocation logic · a724632c
    Thomas Gleixner authored
    This is preparation for the following patch.
    This rework here changes the arguments of cpuhp_invoke_callback(). It
    passes now `state' and whether `startup' or `teardown' callback should
    be invoked. The callback then is looked up by the function.
    
    The following is a clanup of callers:
    - cpuhp_issue_call() has one argument less
    - struct cpuhp_cpu_state (which is used by the hotplug thread) gets also
      its callback removed. The decision if it is a single callback
      invocation moved to the `single' variable. Also a `bringup' variable
      has been added to distinguish between startup and teardown callback.
    - take_cpu_down() needs to start one step earlier. We always get here
      via CPUHP_TEARDOWN_CPU callback. Before that change cpuhp_ap_states +
      CPUHP_TEARDOWN_CPU pointed to an empty entry because TEARDOWN is saved
      in bp_states for this reason. Now that we use cpuhp_get_step() to
      lookup the state we must explicitly skip it in order not to invoke it
      twice.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/1471024183-12666-2-git-send-email-bigeasy@linutronix.deSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    a724632c
cpu.c 43 KB