Frederic Weisbecker <frede...@kernel.org> 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