lkml.org 
[lkml]   [2017]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:smp/hotplug] hwtracing/coresight-etm4x: Use cpuhp_setup_state_nocalls_cpuslocked()
    Commit-ID:  91e555edde960481085a8a69ac32726a9f6df0c9
    Gitweb: http://git.kernel.org/tip/91e555edde960481085a8a69ac32726a9f6df0c9
    Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    AuthorDate: Tue, 18 Apr 2017 19:04:51 +0200
    Committer: Thomas Gleixner <tglx@linutronix.de>
    CommitDate: Thu, 20 Apr 2017 13:08:53 +0200

    hwtracing/coresight-etm4x: Use cpuhp_setup_state_nocalls_cpuslocked()

    etm_probe4() holds get_online_cpus() while invoking
    cpuhp_setup_state_nocalls().

    cpuhp_setup_state_nocalls() invokes get_online_cpus() as well. This is
    correct, but prevents the conversion of the hotplug locking to a percpu
    rwsem.

    Use cpuhp_setup_state_nocalls_cpuslocked() to avoid the nested call.

    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lkml.kernel.org/r/20170418170553.108514162@linutronix.de
    ---
    drivers/hwtracing/coresight/coresight-etm4x.c | 12 ++++++------
    1 file changed, 6 insertions(+), 6 deletions(-)

    diff --git a/drivers/hwtracing/coresight/coresight-etm4x.c b/drivers/hwtracing/coresight/coresight-etm4x.c
    index d1340fb..bd3046c 100644
    --- a/drivers/hwtracing/coresight/coresight-etm4x.c
    +++ b/drivers/hwtracing/coresight/coresight-etm4x.c
    @@ -990,12 +990,12 @@ static int etm4_probe(struct amba_device *adev, const struct amba_id *id)
    dev_err(dev, "ETM arch init failed\n");

    if (!etm4_count++) {
    - cpuhp_setup_state_nocalls(CPUHP_AP_ARM_CORESIGHT_STARTING,
    - "arm/coresight4:starting",
    - etm4_starting_cpu, etm4_dying_cpu);
    - ret = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN,
    - "arm/coresight4:online",
    - etm4_online_cpu, NULL);
    + cpuhp_setup_state_nocalls_cpuslocked(CPUHP_AP_ARM_CORESIGHT_STARTING,
    + "arm/coresight4:starting",
    + etm4_starting_cpu, etm4_dying_cpu);
    + ret = cpuhp_setup_state_nocalls_cpuslocked(CPUHP_AP_ONLINE_DYN,
    + "arm/coresight4:online",
    + etm4_online_cpu, NULL);
    if (ret < 0)
    goto err_arch_supported;
    hp_online = ret;
    \
     
     \ /
      Last update: 2017-04-20 13:27    [W:4.513 / U:0.432 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site