lkml.org 
[lkml]   [2011]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/6] hw_breakpoints: Migrate breakpoint conditional build under new config
    Date
    Migrate conditional hw_breakpoint code compilation under
    the new config to prepare for letting the user chose whether
    or not to build this feature

    Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Prasad <prasad@linux.vnet.ibm.com>
    Cc: Paul Mundt <lethal@linux-sh.org>
    ---
    arch/arm/include/asm/hw_breakpoint.h | 4 ++--
    arch/arm/include/asm/processor.h | 2 +-
    arch/arm/kernel/Makefile | 2 +-
    arch/arm/kernel/entry-header.S | 2 +-
    arch/arm/kernel/ptrace.c | 4 ++--
    arch/powerpc/include/asm/cputable.h | 4 ++--
    arch/powerpc/include/asm/hw_breakpoint.h | 6 +++---
    arch/powerpc/include/asm/processor.h | 4 ++--
    arch/powerpc/kernel/Makefile | 2 +-
    arch/powerpc/kernel/process.c | 18 +++++++++---------
    arch/powerpc/kernel/ptrace.c | 12 ++++++------
    arch/powerpc/lib/Makefile | 2 +-
    arch/sh/kernel/Makefile | 2 +-
    arch/sh/kernel/cpu/sh4a/Makefile | 2 +-
    include/linux/hw_breakpoint.h | 6 +++---
    include/linux/perf_event.h | 4 ++--
    kernel/Makefile | 2 +-
    kernel/perf_event.c | 4 ++--
    samples/Kconfig | 2 +-
    19 files changed, 42 insertions(+), 42 deletions(-)

    diff --git a/arch/arm/include/asm/hw_breakpoint.h b/arch/arm/include/asm/hw_breakpoint.h
    index f389b27..fc6ba18 100644
    --- a/arch/arm/include/asm/hw_breakpoint.h
    +++ b/arch/arm/include/asm/hw_breakpoint.h
    @@ -5,7 +5,7 @@

    struct task_struct;

    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT

    struct arch_hw_breakpoint_ctrl {
    u32 __reserved : 9,
    @@ -128,6 +128,6 @@ int hw_breakpoint_slots(int type);
    #else
    static inline void clear_ptrace_hw_breakpoint(struct task_struct *tsk) {}

    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */
    #endif /* __KERNEL__ */
    #endif /* _ARM_HW_BREAKPOINT_H */
    diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h
    index b2d9df5..b86d135 100644
    --- a/arch/arm/include/asm/processor.h
    +++ b/arch/arm/include/asm/processor.h
    @@ -30,7 +30,7 @@
    #endif

    struct debug_info {
    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    struct perf_event *hbp[ARM_MAX_HBP_SLOTS];
    #endif
    };
    diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
    index 8d95446..e6c4b04 100644
    --- a/arch/arm/kernel/Makefile
    +++ b/arch/arm/kernel/Makefile
    @@ -47,7 +47,7 @@ obj-$(CONFIG_HAVE_TCM) += tcm.o
    obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
    obj-$(CONFIG_SWP_EMULATE) += swp_emulate.o
    CFLAGS_swp_emulate.o := -Wa,-march=armv7-a
    -obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
    +obj-$(CONFIG_HW_BREAKPOINT) += hw_breakpoint.o

    obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o
    AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
    diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
    index 051166c..fbc7cc9 100644
    --- a/arch/arm/kernel/entry-header.S
    +++ b/arch/arm/kernel/entry-header.S
    @@ -171,7 +171,7 @@
    @ we can access the debug registers safely.
    @
    .macro debug_entry, fsr
    -#if defined(CONFIG_HAVE_HW_BREAKPOINT) && defined(CONFIG_PREEMPT)
    +#if defined(CONFIG_HW_BREAKPOINT) && defined(CONFIG_PREEMPT)
    ldr r4, =0x40f @ mask out fsr.fs
    and r5, r4, \fsr
    cmp r5, #2 @ debug exception
    diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
    index 2bf27f3..a3f8a0b 100644
    --- a/arch/arm/kernel/ptrace.c
    +++ b/arch/arm/kernel/ptrace.c
    @@ -468,7 +468,7 @@ static int ptrace_setvfpregs(struct task_struct *tsk, void __user *data)
    }
    #endif

    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    /*
    * Convert a virtual register number into an index for a thread_info
    * breakpoint array. Breakpoints are identified using positive numbers
    @@ -765,7 +765,7 @@ long arch_ptrace(struct task_struct *child, long request,
    break;
    #endif

    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    case PTRACE_GETHBPREGS:
    ret = ptrace_gethbpregs(child, addr,
    (unsigned long __user *)data);
    diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h
    index 1833d1a..36b5568 100644
    --- a/arch/powerpc/include/asm/cputable.h
    +++ b/arch/powerpc/include/asm/cputable.h
    @@ -538,9 +538,9 @@ static inline int cpu_has_feature(unsigned long feature)
    & feature);
    }

    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    #define HBP_NUM 1
    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */

    #endif /* !__ASSEMBLY__ */

    diff --git a/arch/powerpc/include/asm/hw_breakpoint.h b/arch/powerpc/include/asm/hw_breakpoint.h
    index 1c33ec1..6ecd3b6 100644
    --- a/arch/powerpc/include/asm/hw_breakpoint.h
    +++ b/arch/powerpc/include/asm/hw_breakpoint.h
    @@ -24,7 +24,7 @@
    #define _PPC_BOOK3S_64_HW_BREAKPOINT_H

    #ifdef __KERNEL__
    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT

    struct arch_hw_breakpoint {
    bool extraneous_interrupt;
    @@ -65,10 +65,10 @@ static inline void hw_breakpoint_disable(void)
    }
    extern void thread_change_pc(struct task_struct *tsk, struct pt_regs *regs);

    -#else /* CONFIG_HAVE_HW_BREAKPOINT */
    +#else /* CONFIG_HW_BREAKPOINT */
    static inline void hw_breakpoint_disable(void) { }
    static inline void thread_change_pc(struct task_struct *tsk,
    struct pt_regs *regs) { }
    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */
    #endif /* __KERNEL__ */
    #endif /* _PPC_BOOK3S_64_HW_BREAKPOINT_H */
    diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h
    index de1967a..3fe688d 100644
    --- a/arch/powerpc/include/asm/processor.h
    +++ b/arch/powerpc/include/asm/processor.h
    @@ -207,14 +207,14 @@ struct thread_struct {
    #ifdef CONFIG_PPC64
    unsigned long start_tb; /* Start purr when proc switched in */
    unsigned long accum_tb; /* Total accumilated purr for process */
    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    struct perf_event *ptrace_bps[HBP_NUM];
    /*
    * Helps identify source of single-step exception and subsequent
    * hw-breakpoint enablement
    */
    struct perf_event *last_hit_ubp;
    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */
    #endif
    unsigned long dabr; /* Data address breakpoint register */
    #ifdef CONFIG_ALTIVEC
    diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
    index 3bb2a3e..5df8585 100644
    --- a/arch/powerpc/kernel/Makefile
    +++ b/arch/powerpc/kernel/Makefile
    @@ -36,7 +36,7 @@ obj-y := cputable.o ptrace.o syscalls.o \
    obj-$(CONFIG_PPC64) += setup_64.o sys_ppc32.o \
    signal_64.o ptrace32.o \
    paca.o nvram_64.o firmware.o
    -obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
    +obj-$(CONFIG_HW_BREAKPOINT) += hw_breakpoint.o
    obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_ppc970.o cpu_setup_pa6t.o
    obj64-$(CONFIG_RELOCATABLE) += reloc_64.o
    obj-$(CONFIG_PPC_BOOK3E_64) += exceptions-64e.o idle_book3e.o
    diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
    index f74f355..3faf61a 100644
    --- a/arch/powerpc/kernel/process.c
    +++ b/arch/powerpc/kernel/process.c
    @@ -353,7 +353,7 @@ static void switch_booke_debug_regs(struct thread_struct *new_thread)
    prime_debug_regs(new_thread);
    }
    #else /* !CONFIG_PPC_ADV_DEBUG_REGS */
    -#ifndef CONFIG_HAVE_HW_BREAKPOINT
    +#ifndef CONFIG_HW_BREAKPOINT
    static void set_debug_reg_defaults(struct thread_struct *thread)
    {
    if (thread->dabr) {
    @@ -361,7 +361,7 @@ static void set_debug_reg_defaults(struct thread_struct *thread)
    set_dabr(0);
    }
    }
    -#endif /* !CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* !CONFIG_HW_BREAKPOINT */
    #endif /* CONFIG_PPC_ADV_DEBUG_REGS */

    int set_dabr(unsigned long dabr)
    @@ -469,10 +469,10 @@ struct task_struct *__switch_to(struct task_struct *prev,
    * For PPC_BOOK3S_64, we use the hw-breakpoint interfaces that would
    * schedule DABR
    */
    -#ifndef CONFIG_HAVE_HW_BREAKPOINT
    +#ifndef CONFIG_HW_BREAKPOINT
    if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr))
    set_dabr(new->thread.dabr);
    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */
    #endif


    @@ -672,11 +672,11 @@ void flush_thread(void)
    {
    discard_lazy_cpu_state();

    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    flush_ptrace_hw_breakpoint(current);
    -#else /* CONFIG_HAVE_HW_BREAKPOINT */
    +#else /* CONFIG_HW_BREAKPOINT */
    set_debug_reg_defaults(&current->thread);
    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */
    }

    void
    @@ -694,9 +694,9 @@ void prepare_to_copy(struct task_struct *tsk)
    flush_altivec_to_thread(current);
    flush_vsx_to_thread(current);
    flush_spe_to_thread(current);
    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    flush_ptrace_hw_breakpoint(tsk);
    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */
    }

    /*
    diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
    index 55613e3..6a3f54e 100644
    --- a/arch/powerpc/kernel/ptrace.c
    +++ b/arch/powerpc/kernel/ptrace.c
    @@ -877,7 +877,7 @@ void user_disable_single_step(struct task_struct *task)
    clear_tsk_thread_flag(task, TIF_SINGLESTEP);
    }

    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    void ptrace_triggered(struct perf_event *bp, int nmi,
    struct perf_sample_data *data, struct pt_regs *regs)
    {
    @@ -893,17 +893,17 @@ void ptrace_triggered(struct perf_event *bp, int nmi,
    attr.disabled = true;
    modify_user_hw_breakpoint(bp, &attr);
    }
    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */

    int ptrace_set_debugreg(struct task_struct *task, unsigned long addr,
    unsigned long data)
    {
    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    int ret;
    struct thread_struct *thread = &(task->thread);
    struct perf_event *bp;
    struct perf_event_attr attr;
    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */

    /* For ppc64 we support one DABR and no IABR's at the moment (ppc64).
    * For embedded processors we support one DAC and no IAC's at the
    @@ -932,7 +932,7 @@ int ptrace_set_debugreg(struct task_struct *task, unsigned long addr,
    /* Ensure breakpoint translation bit is set */
    if (data && !(data & DABR_TRANSLATION))
    return -EIO;
    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    bp = thread->ptrace_bps[0];
    if ((!data) || !(data & (DABR_DATA_WRITE | DABR_DATA_READ))) {
    if (bp) {
    @@ -968,7 +968,7 @@ int ptrace_set_debugreg(struct task_struct *task, unsigned long addr,
    return PTR_ERR(bp);
    }

    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */

    /* Move contents to the DABR register */
    task->thread.dabr = data;
    diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
    index 166a6a0..515d044 100644
    --- a/arch/powerpc/lib/Makefile
    +++ b/arch/powerpc/lib/Makefile
    @@ -19,7 +19,7 @@ obj-$(CONFIG_PPC64) += copypage_64.o copyuser_64.o \
    checksum_wrappers_64.o hweight_64.o
    obj-$(CONFIG_XMON) += sstep.o ldstfp.o
    obj-$(CONFIG_KPROBES) += sstep.o ldstfp.o
    -obj-$(CONFIG_HAVE_HW_BREAKPOINT) += sstep.o ldstfp.o
    +obj-$(CONFIG_HW_BREAKPOINT) += sstep.o ldstfp.o

    ifeq ($(CONFIG_PPC64),y)
    obj-$(CONFIG_SMP) += locks.o
    diff --git a/arch/sh/kernel/Makefile b/arch/sh/kernel/Makefile
    index 77f7ae1..9d5075c 100644
    --- a/arch/sh/kernel/Makefile
    +++ b/arch/sh/kernel/Makefile
    @@ -45,7 +45,7 @@ obj-$(CONFIG_HIBERNATION) += swsusp.o
    obj-$(CONFIG_DWARF_UNWINDER) += dwarf.o
    obj-$(CONFIG_PERF_EVENTS) += perf_event.o perf_callchain.o

    -obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
    +obj-$(CONFIG_HW_BREAKPOINT) += hw_breakpoint.o
    obj-$(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST) += localtimer.o

    ccflags-y := -Werror
    diff --git a/arch/sh/kernel/cpu/sh4a/Makefile b/arch/sh/kernel/cpu/sh4a/Makefile
    index cc122b1..5bec639 100644
    --- a/arch/sh/kernel/cpu/sh4a/Makefile
    +++ b/arch/sh/kernel/cpu/sh4a/Makefile
    @@ -46,4 +46,4 @@ obj-y += $(clock-y)
    obj-$(CONFIG_SMP) += $(smp-y)
    obj-$(CONFIG_GENERIC_GPIO) += $(pinmux-y)
    obj-$(CONFIG_PERF_EVENTS) += perf_event.o
    -obj-$(CONFIG_HAVE_HW_BREAKPOINT) += ubc.o
    +obj-$(CONFIG_HW_BREAKPOINT) += ubc.o
    diff --git a/include/linux/hw_breakpoint.h b/include/linux/hw_breakpoint.h
    index d1e55fe..9aad682 100644
    --- a/include/linux/hw_breakpoint.h
    +++ b/include/linux/hw_breakpoint.h
    @@ -31,7 +31,7 @@ enum bp_type_idx {

    #include <linux/perf_event.h>

    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT

    extern int __init init_hw_breakpoint(void);

    @@ -108,7 +108,7 @@ static inline struct arch_hw_breakpoint *counter_arch_bp(struct perf_event *bp)
    return &bp->hw.info;
    }

    -#else /* !CONFIG_HAVE_HW_BREAKPOINT */
    +#else /* !CONFIG_HW_BREAKPOINT */

    static inline int __init init_hw_breakpoint(void) { return 0; }

    @@ -144,7 +144,7 @@ static inline struct arch_hw_breakpoint *counter_arch_bp(struct perf_event *bp)
    return NULL;
    }

    -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
    +#endif /* CONFIG_HW_BREAKPOINT */
    #endif /* __KERNEL__ */

    #endif /* _LINUX_HW_BREAKPOINT_H */
    diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
    index ee9f1e7..0f0f9bb 100644
    --- a/include/linux/perf_event.h
    +++ b/include/linux/perf_event.h
    @@ -489,7 +489,7 @@ struct perf_guest_info_callbacks {
    unsigned long (*get_guest_ip) (void);
    };

    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    #include <asm/hw_breakpoint.h>
    #endif

    @@ -554,7 +554,7 @@ struct hw_perf_event {
    struct { /* software */
    struct hrtimer hrtimer;
    };
    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    struct { /* breakpoint */
    struct arch_hw_breakpoint info;
    struct list_head bp_list;
    diff --git a/kernel/Makefile b/kernel/Makefile
    index 85cbfb3..c2739c5 100644
    --- a/kernel/Makefile
    +++ b/kernel/Makefile
    @@ -104,7 +104,7 @@ obj-$(CONFIG_TRACEPOINTS) += trace/
    obj-$(CONFIG_SMP) += sched_cpupri.o
    obj-$(CONFIG_IRQ_WORK) += irq_work.o
    obj-$(CONFIG_PERF_EVENTS) += perf_event.o
    -obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
    +obj-$(CONFIG_HW_BREAKPOINT) += hw_breakpoint.o
    obj-$(CONFIG_USER_RETURN_NOTIFIER) += user-return-notifier.o
    obj-$(CONFIG_PADATA) += padata.o
    obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
    diff --git a/kernel/perf_event.c b/kernel/perf_event.c
    index 8e81a98..cc89f16 100644
    --- a/kernel/perf_event.c
    +++ b/kernel/perf_event.c
    @@ -5616,7 +5616,7 @@ static void perf_event_free_filter(struct perf_event *event)

    #endif /* CONFIG_EVENT_TRACING */

    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    void perf_bp_event(struct perf_event *bp, void *data)
    {
    struct perf_sample_data sample;
    @@ -6207,7 +6207,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,

    if (task) {
    event->attach_state = PERF_ATTACH_TASK;
    -#ifdef CONFIG_HAVE_HW_BREAKPOINT
    +#ifdef CONFIG_HW_BREAKPOINT
    /*
    * hw_breakpoint is a bit difficult here..
    */
    diff --git a/samples/Kconfig b/samples/Kconfig
    index 41063e7..d1e41e9 100644
    --- a/samples/Kconfig
    +++ b/samples/Kconfig
    @@ -40,7 +40,7 @@ config SAMPLE_KRETPROBES

    config SAMPLE_HW_BREAKPOINT
    tristate "Build kernel hardware breakpoint examples -- loadable module only"
    - depends on HAVE_HW_BREAKPOINT && m
    + depends on HW_BREAKPOINT && m
    help
    This builds kernel hardware breakpoint example modules.

    --
    1.7.3.2


    \
     
     \ /
      Last update: 2011-04-27 19:03    [W:0.059 / U:31.548 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site