lkml.org 
[lkml]   [2017]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [patch V2 08/24] hwtracing/coresight-etm3x: Use cpuhp_setup_state_nocalls_cpuslocked()
    On 18 April 2017 at 11:04, Thomas Gleixner <tglx@linutronix.de> wrote:
    > From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    >
    > etm_probe() 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: linux-arm-kernel@lists.infradead.org
    >
    > ---
    > drivers/hwtracing/coresight/coresight-etm3x.c | 12 ++++++------
    > 1 file changed, 6 insertions(+), 6 deletions(-)
    >
    > --- a/drivers/hwtracing/coresight/coresight-etm3x.c
    > +++ b/drivers/hwtracing/coresight/coresight-etm3x.c
    > @@ -803,12 +803,12 @@ static int etm_probe(struct amba_device
    > dev_err(dev, "ETM arch init failed\n");
    >
    > if (!etm_count++) {
    > - cpuhp_setup_state_nocalls(CPUHP_AP_ARM_CORESIGHT_STARTING,
    > - "arm/coresight:starting",
    > - etm_starting_cpu, etm_dying_cpu);
    > - ret = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN,
    > - "arm/coresight:online",
    > - etm_online_cpu, NULL);
    > + cpuhp_setup_state_nocalls_cpuslocked(CPUHP_AP_ARM_CORESIGHT_STARTING,
    > + "arm/coresight:starting",
    > + etm_starting_cpu, etm_dying_cpu);
    > + ret = cpuhp_setup_state_nocalls_cpuslocked(CPUHP_AP_ONLINE_DYN,
    > + "arm/coresight:online",
    > + etm_online_cpu, NULL);
    > if (ret < 0)
    > goto err_arch_supported;
    > hp_online = ret;
    >

    Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org>

    \
     
     \ /
      Last update: 2017-04-20 17:15    [W:4.306 / U:0.364 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site