lkml.org 
[lkml]   [2019]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC][PATCH 01/16] stop_machine: Fix stop_cpus_in_progress ordering
    Make sure the entire for loop has stop_cpus_in_progress set.

    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    ---
    kernel/stop_machine.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/kernel/stop_machine.c
    +++ b/kernel/stop_machine.c
    @@ -375,6 +375,7 @@ static bool queue_stop_cpus_work(const s
    */
    preempt_disable();
    stop_cpus_in_progress = true;
    + barrier();
    for_each_cpu(cpu, cpumask) {
    work = &per_cpu(cpu_stopper.stop_work, cpu);
    work->fn = fn;
    @@ -383,6 +384,7 @@ static bool queue_stop_cpus_work(const s
    if (cpu_stop_queue_work(cpu, work))
    queued = true;
    }
    + barrier();
    stop_cpus_in_progress = false;
    preempt_enable();


    \
     
     \ /
      Last update: 2019-02-18 18:43    [W:4.146 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site