lkml.org 
[lkml]   [2010]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] call stop_machine_text_poke() on all cpus
    Currently, text_poke_smp() passes a NULL as the third argument to
    __stop_machine(), which will only run stop_machine_text_poke()
    on 1 cpu. Change NULL -> cpu_online_mask, as stop_machine_text_poke()
    is intended to be run on all cpus.

    I actually didn't notice any problems with stop_machine_text_poke()
    only being called on 1 cpu, but found this via code inspection.

    Signed-off-by: Jason Baron <jbaron@redhat.com>
    ---
    arch/x86/kernel/alternative.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
    index 9f39a1c..3c3f26f 100644
    --- a/arch/x86/kernel/alternative.c
    +++ b/arch/x86/kernel/alternative.c
    @@ -705,6 +705,6 @@ void *__kprobes text_poke_smp(void *addr, const void *opcode, size_t len)
    atomic_set(&stop_machine_first, 1);
    wrote_text = 0;
    /* Use __stop_machine() because the caller already got online_cpus. */
    - __stop_machine(stop_machine_text_poke, (void *)&tpp, NULL);
    + __stop_machine(stop_machine_text_poke, (void *)&tpp, cpu_online_mask);
    return addr;
    }
    --
    1.7.1


    \
     
     \ /
      Last update: 2010-10-28 17:23    [W:0.028 / U:243.256 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site