Re: [PATCH v7 07/11] arm_mpam: propagate MSC access errors for mpam_reprogram_ris_partid()
Jonathan Cameron <[email protected]> Mon, 3 Aug 2026 15:28:59 -0700
| Newsgroups | org.kernel.vger.linux-acpi,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Organization | Qualcomm |
| Message-ID | <[email protected]> |
On Fri, 31 Jul 2026 19:03:20 +0200 Andre Przywara <[email protected]> wrote: > Allow the mpam_reprogram_ris_partid() function check for and return function to check > errors, and propagate MSC read and write errors from the lower level up. > This also covers the callers of this function: mpam_reset_ris() and > apply_config(). > > Signed-off-by: Andre Przywara <[email protected]> One thing below to perhaps modify if you are respinning Reviewed-by: Jonathan Cameron <[email protected]> > --- > drivers/resctrl/mpam_devices.c | 136 ++++++++++++++++++++++----------- > 1 file changed, 93 insertions(+), 43 deletions(-) > > diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c > index 38450c55e45e..32088ad1d67e 100644 > --- a/drivers/resctrl/mpam_devices.c > +++ b/drivers/resctrl/mpam_devices.c > @@ -1601,7 +1601,7 @@ void mpam_msmon_reset_mbwu(struct mpam_component *comp, struct mon_cfg *ctx) > } > } > > -static void mpam_reset_msc_bitmap(struct mpam_msc *msc, u16 reg, u16 wd) > +static int mpam_reset_msc_bitmap(struct mpam_msc *msc, u16 reg, u16 wd) > { > u32 num_words, msb; > u32 bm = ~0; > @@ -1610,15 +1610,19 @@ static void mpam_reset_msc_bitmap(struct mpam_msc *msc, u16 reg, u16 wd) > lockdep_assert_held(&msc->part_sel_lock); > > if (wd == 0) > - return; > + return 0; > > /* > * Write all ~0 to all but the last 32bit-word, which may > * have fewer bits... > */ > num_words = DIV_ROUND_UP(wd, 32); > - for (i = 0; i < num_words - 1; i++, reg += sizeof(bm)) > - __mpam_write_reg(msc, reg, bm); > + for (i = 0; i < num_words - 1; i++, reg += sizeof(bm)) { Not really related to what you are doing here, but if you like you could reduce the scope of i via for (int i = 0;... as it isn't used outside of this loop. > + int ret = __mpam_write_reg(msc, reg, bm); > + > + if (ret) > + return ret; Personally I don't like this style but feel free to ignore as this is very much a personal taste thing. I'd do int ret; ret = __mpam_write_reg(msc, reg, bm); if (ret) return ret; } just to keep the source of error and check for error next to each other. > + }