• Alex Smith's avatar
    MIPS: ptrace: Avoid smp_processor_id() in preemptible code · 57c7ea51
    Alex Smith authored
    ptrace_{get,set}_watch_regs access current_cpu_data to get the watch
    register count/masks, which calls smp_processor_id(). However they are
    run in preemptible context and therefore trigger warnings like so:
    
    [ 6340.092000] BUG: using smp_processor_id() in preemptible [00000000] code: gdb/367
    [ 6340.092000] caller is ptrace_get_watch_regs+0x44/0x220
    
    Since the watch register count/masks should be the same across all
    CPUs, use boot_cpu_data instead. Note that this may need to change in
    future should a heterogenous system be supported where the count/masks
    are not the same across all CPUs (the current code is also incorrect
    for this scenario - current_cpu_data here would not necessarily be
    correct for the CPU that the target task will execute on).
    Signed-off-by: default avatarAlex Smith <alex.smith@imgtec.com>
    Reviewed-by: default avatarPaul Burton <paul.burton@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6879/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    57c7ea51
ptrace.c 15.4 KB