From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from trager.us (trager.us [52.5.81.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BCE73B583A for ; Mon, 20 Jul 2026 23:06:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=52.5.81.116 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784588770; cv=none; b=MuZFXqAz4R1+eD0CA6OLmOlkscLqwiSlb1dYXitSLP22C2UFxSvm8q7tt/4LBfoeH8dCxi3cX5Abl03AURK6U/W98P+NfCxZl/zzdTlZToezP1AbZ7Wzc7MuWmr0kncuKaRLzcwfV9vL9cmziWZ/K7aVTaIg9iwmN8P3wdbWGhU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784588770; c=relaxed/simple; bh=3xVLbODsdVf/pXhwVNg0Gepp1q4CUw8228LN0fZpN5Q=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=dObG0uxuSlQgi2/eiwgcoNYMFWhR/uCWJQc+lQ1ajnaFfLPwM/WqR2sNXVLd9+RsQCsKm/IdHlZ583Nxs0i9UqOixZekiaz1bMMI5b82PqrM4LWT9NBPcg/h5LgOkUFkIokW91sZzoPcYhTn5MgMDFOBCbODjRcz0WDhrODOu7c= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=trager.us; spf=pass smtp.mailfrom=trager.us; arc=none smtp.client-ip=52.5.81.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=trager.us Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=trager.us Received: from c-73-254-161-40.hsd1.wa.comcast.net ([73.254.161.40] helo=[192.168.1.226]) by trager.us with esmtpsa (TLSv1.3:TLS_AES_128_GCM_SHA256:128) (Exim 4.92.3) (envelope-from ) id 1wlx3d-00062W-NS; Mon, 20 Jul 2026 23:05:57 +0000 Message-ID: <0e117330-36ed-4917-8a63-384d1e4f77fc@trager.us> Date: Mon, 20 Jul 2026 16:05:50 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 07/11] arm_mpam: Initialize all of struct mon_read in mpam_restore_mbwu_state() To: Ben Horgan Cc: james.morse@arm.com, reinette.chatre@intel.com, fenghuay@nvidia.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, dave.martin@arm.com, andre.przywara@arm.com References: <20260710115546.29644-1-ben.horgan@arm.com> <20260710115546.29644-8-ben.horgan@arm.com> Content-Language: en-US From: Lee Trager In-Reply-To: <20260710115546.29644-8-ben.horgan@arm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 7/10/26 4:55 AM, Ben Horgan wrote: > m->err may be read before initialization in __ris_msmon_read() when called > from mpam_restore_mbwu_state(). > > Initialize the whole struct mon_read in mpam_restore_mbwu_state() and fix > the spelling of mbwu in the name. > > Fixes: 41e8a14950e1 ("arm_mpam: Track bandwidth counter state for power management") > Signed-off-by: Ben Horgan > --- > drivers/resctrl/mpam_devices.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c > index a49f426aefc0..c9adc450f087 100644 > --- a/drivers/resctrl/mpam_devices.c > +++ b/drivers/resctrl/mpam_devices.c > @@ -1640,7 +1640,6 @@ static int mpam_restore_mbwu_state(void *_ris) > { > int i; > u64 val; val is still uninitialized. Its passed to to __ris_mon_read() below which does *m->val += now; > - struct mon_read mwbu_arg; > struct mpam_msc_ris *ris = _ris; > struct msmon_mbwu_state *mbwu_state; > struct mpam_msc *msc = ris->vmsc->msc; > @@ -1653,16 +1652,18 @@ static int mpam_restore_mbwu_state(void *_ris) > return -EIO; > > if (ris->mbwu_state[i].enabled) { > - mwbu_arg.ris = ris; > - mwbu_arg.ctx = &ris->mbwu_state[i].cfg; > - mwbu_arg.type = mpam_msmon_choose_counter(class); > - mwbu_arg.val = &val; > + struct mon_read mbwu_arg = { > + .ris = ris, > + .ctx = &ris->mbwu_state[i].cfg, > + .type = mpam_msmon_choose_counter(class), > + .val = &val > + }; > > mbwu_state->reset_on_next_read = true; > > mpam_mon_sel_unlock(msc); > > - __ris_msmon_read(&mwbu_arg); > + __ris_msmon_read(&mbwu_arg); > } else { > mpam_mon_sel_unlock(msc); > }