On Wed, 10 Sep 2025 20:43:00 +0000 James Morse <james.morse@xxxxxxx> wrote: > When CPUs come online the MSC's original configuration should be restored. > > Add struct mpam_config to hold the configuration. This has a bitmap of > features that were modified. Once the maximum partid is known, allocate > a configuration array for each component, and reprogram each RIS > configuration from this. > > CC: Dave Martin <Dave.Martin@xxxxxxx> > Signed-off-by: James Morse <james.morse@xxxxxxx> Trivial comments Reviewed-by: Jonathan Cameron <jonathan.cameron@xxxxxxxxxx> > + > +static void mpam_init_reset_cfg(struct mpam_config *reset_cfg) > +{ > + memset(reset_cfg, 0, sizeof(*reset_cfg)); Might as well do the following and skip the memset. *reset_cfg = (struct mpam_config) { .features = ~0, .cpbm = ~0, .mbw_pbm = ~0, .mbw_max = MPAM... .reset_cpbm = true, .reset_mbw_pbm = true, }; > + > + reset_cfg->features = ~0; > + reset_cfg->cpbm = ~0; > + reset_cfg->mbw_pbm = ~0; > + reset_cfg->mbw_max = MPAMCFG_MBW_MAX_MAX; > + > + reset_cfg->reset_cpbm = true; > + reset_cfg->reset_mbw_pbm = true; > +} > +static int mpam_allocate_config(void) > +{ > + int err = 0; Always set before use. Maybe push down so it is in tighter scope and can declare and initialize to final value in one line. > + struct mpam_class *class; > + struct mpam_component *comp; > + > + lockdep_assert_held(&mpam_list_lock); > + > + list_for_each_entry(class, &mpam_classes, classes_list) { > + list_for_each_entry(comp, &class->components, class_list) { > + err = __allocate_component_cfg(comp); > + if (err) > + return err; > + } > + } > + > + return 0; > +} > diff --git a/drivers/resctrl/mpam_internal.h b/drivers/resctrl/mpam_internal.h > index b69fa9199cb4..17570d9aae9b 100644 > --- a/drivers/resctrl/mpam_internal.h > +++ b/drivers/resctrl/mpam_internal.h > @@ -169,11 +169,7 @@ struct mpam_props { > u16 num_mbwu_mon; > }; > > -static inline bool mpam_has_feature(enum mpam_device_features feat, > - struct mpam_props *props) > -{ > - return (1 << feat) & props->features; > -} > +#define mpam_has_feature(_feat, x) ((1 << (_feat)) & (x)->features) If this is worth doing push it back to original introduction. I'm not sure it is necessary. Jonathan