On Mon, Jun 12, 2023 at 10:56:06PM -0700, Namhyung Kim wrote: > Hi Peter, > > On Mon, Jun 12, 2023 at 2:39 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > > Use guards to reduce gotos and simplify control flow. > > > > Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> > > --- > > kernel/events/core.c | 39 ++++++++++++++++++++++++++------------- > > 1 file changed, 26 insertions(+), 13 deletions(-) > > > > --- a/kernel/events/core.c > > +++ b/kernel/events/core.c > > @@ -214,6 +214,25 @@ struct event_function_struct { > > void *data; > > }; > > > > +typedef struct { > > + struct perf_cpu_context *cpuctx; > > + struct perf_event_context *ctx; > > +} class_perf_ctx_lock_t; > > + > > +static inline void class_perf_ctx_lock_destructor(class_perf_ctx_lock_t *_T) > > +{ > > + if (_T->cpuctx) > > + perf_ctx_unlock(_T->cpuctx, _T->ctx); > > Shouldn't it be called unconditionally? In all surviving cases it will be, so yeah, I can remove that condition.