• Frederic Weisbecker's avatar
    perf/hw_breakpoint: Split attribute parse and commit · 9a4903dd
    Frederic Weisbecker authored
    arch_validate_hwbkpt_settings() mixes up attribute check and commit into
    a single code entity. Therefore the validation may return an error due to
    incorrect atributes while still leaving halfway modified architecture
    breakpoint data.
    
    This is harmless when we deal with a new breakpoint but it becomes a
    problem when we modify an existing breakpoint.
    
    Split attribute parse and commit to fix that. The architecture is
    passed a "struct arch_hw_breakpoint" to fill on top of the new attr
    and the core takes care about copying the backend data once it's fully
    validated. The architectures then need to implement the new API.
    Original-patch-by: default avatarAndy Lutomirski <luto@kernel.org>
    Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Chris Zankel <chris@zankel.net>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Joel Fernandes <joel.opensrc@gmail.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Max Filippov <jcmvbkbc@gmail.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rich Felker <dalias@libc.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Link: http://lkml.kernel.org/r/1529981939-8231-2-git-send-email-frederic@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    9a4903dd
hw_breakpoint.c 16.9 KB