Re: [PATCH 01/12] perf/breakpoint: Split attribute parse and commit

From: Michael Ellerman
Date: Wed May 23 2018 - 21:03:02 EST


Frederic Weisbecker <frederic@xxxxxxxxxx> writes:

> diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c
> index 6e28d28..51320c2 100644
> --- a/kernel/events/hw_breakpoint.c
> +++ b/kernel/events/hw_breakpoint.c
> @@ -424,19 +443,22 @@ static int validate_hw_breakpoint(struct perf_event *bp)
>
> int register_perf_hw_breakpoint(struct perf_event *bp)
> {
> - int ret;
> + struct arch_hw_breakpoint hw;
> + int err;
>
> - ret = reserve_bp_slot(bp);
> - if (ret)
> - return ret;
> + err = reserve_bp_slot(bp);
> + if (err)
> + return err;
>
> - ret = validate_hw_breakpoint(bp);
> -
> - /* if arch_validate_hwbkpt_settings() fails then release bp slot */
> - if (ret)
> + err = hw_breakpoint_parse(bp, &bp->attr, &hw);

Is there a good reason we pass bp and bp->attr? (I assume so)

That added to the confusion in the existing code I think.

cheers