Re: [PATCH v3 13/16] powerpc/watchpoint: Prepare handler to handle more than one watcnhpoint

From: Christophe Leroy
Date: Fri Apr 24 2020 - 01:48:45 EST


Hi Ravi,

Le 24/04/2020 Ã 05:32, Ravi Bangoria a ÃcritÂ:
Hi Christophe,

@@ -101,14 +129,20 @@ static bool is_ptrace_bp(struct perf_event *bp)
ÂÂ */
 void arch_unregister_hw_breakpoint(struct perf_event *bp)
 {
+ÂÂÂ int i;
+

This declaration should be in the block using it.

ÂÂÂÂÂ /*
ÂÂÂÂÂÂ * If the breakpoint is unregistered between a hw_breakpoint_handler()
ÂÂÂÂÂÂ * and the single_step_dabr_instruction(), then cleanup the breakpoint
ÂÂÂÂÂÂ * restoration variables to prevent dangling pointers.
ÂÂÂÂÂÂ * FIXME, this should not be using bp->ctx at all! Sayeth peterz.
ÂÂÂÂÂÂ */
-ÂÂÂ if (bp->ctx && bp->ctx->task && bp->ctx->task != ((void *)-1L))
-ÂÂÂÂÂÂÂ bp->ctx->task->thread.last_hit_ubp = NULL;
+ÂÂÂ if (bp->ctx && bp->ctx->task && bp->ctx->task != ((void *)-1L)) {

Add declaration of 'int i' here.

How will that help? Keeping declaration at the start of function is also
common practice and I don't see any recommendation to move them inside
conditional block.

Reducing the scope of local variables increases readability, you don't have to scroll all up to the top of the function to see the declaration of the variable.

common practice ? Are you sure ? Just have a look at fs/io_uring.c or many other files in the kernel to see how uncommon your practice is.

Christophe