From nobody Mon Jun 15 19:26:55 2026 Received: from canpmsgout04.his.huawei.com (canpmsgout04.his.huawei.com [113.46.200.219]) (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 AB251238C3B for ; Mon, 13 Apr 2026 09:01:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=113.46.200.219 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776070862; cv=none; b=CEqlRTOLHrZ/xDKNWpc4d7TZ022OhHccIC1c5E7jHDHs7NMyJX0KJevS3ikyvVWtqaKd62GuaeXgbybXb0jquFr+Yv0y/CE5VTWqOnxbt6ibXghP6wWOuKFj9b2cl87QwrUTyGZdKHrqq56JkYanY/OhkF/dpWphPwUEpkqQVp4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776070862; c=relaxed/simple; bh=6DqFIQacqYJ1Cn9nv57LC6Oz9Y9CYid+MF5a7nGYFN0=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=eaULin/WQZ7B6a5rreiblkO+yuS+NHVxuGDgrv/ZpupmMAd6ud1j1N0B4Dbn3JShqLzzX7u3tPX9LDcK/Qb83glg9gsEzknCX1AorSnw3D6TP98bh63eoaBdMhiCDytiE8N0IqDc3JszdeSCCNhv5KVunjIIC0NPt26iNFMpjrk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=huawei.com; spf=pass smtp.mailfrom=h-partners.com; dkim=pass (1024-bit key) header.d=h-partners.com header.i=@h-partners.com header.b=Cc3EtNKL; arc=none smtp.client-ip=113.46.200.219 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=huawei.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=h-partners.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=h-partners.com header.i=@h-partners.com header.b="Cc3EtNKL" dkim-signature: v=1; a=rsa-sha256; d=h-partners.com; s=dkim; c=relaxed/relaxed; q=dns/txt; h=From; bh=FN1dWgL1zt2QAQNVnN9Tol2cULziwGtk6TkxTvS4ryE=; b=Cc3EtNKLX0hR3r1n/D48i/Iy22NquyQmKdKZIm30rZa/0o38Am9aOpAG2wPCwGHzz7sXNRv7j 68im9zL2CZH+ef2u+i5ZYX4L7bxDLuhLEwadTlpNvNfMaPzTYqmgo6nzeIEJj/xt8/8SGIQVdEW QasKijeT2hSlmYPt0rG7Z7g= Received: from mail.maildlp.com (unknown [172.19.162.197]) by canpmsgout04.his.huawei.com (SkyGuard) with ESMTPS id 4fvLnV5XK9z1prN0; Mon, 13 Apr 2026 16:54:38 +0800 (CST) Received: from kwepemf100008.china.huawei.com (unknown [7.202.181.222]) by mail.maildlp.com (Postfix) with ESMTPS id AA5E340577; Mon, 13 Apr 2026 17:00:58 +0800 (CST) Received: from huawei.com (10.50.87.109) by kwepemf100008.china.huawei.com (7.202.181.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.36; Mon, 13 Apr 2026 17:00:58 +0800 From: Zeng Heng To: , , , , , , CC: , , Subject: [PATCH next] arm_mpam: Fix MBA alloc_capable handling Date: Mon, 13 Apr 2026 17:00:41 +0800 Message-ID: <20260413090041.1174485-1-zengheng4@huawei.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To kwepemf100008.china.huawei.com (7.202.181.222) Content-Type: text/plain; charset="utf-8" The resctrl_arch_set_cdp_enabled() is never invoked with RDT_RESOURCE_MBA as the rid parameter. Consequently, mpam_resctrl_controls[RDT_RESOURCE_MBA].cdp_enabled always remains false, making it unreliable for conditional checks. The original logic uses this field to determine MBA state, causing a bug where MBA allocation is permanently disabled after the mount with CDP option. Remounting without CDP cannot restore the MBA partition capability. Fix by using the cdp_enabled global parameter directly. Enable MBA partition only when CDP is disabled and the MBA resource class is present. Disable MBA partition otherwise. Fixes: 6789fb99282c ("arm_mpam: resctrl: Add CDP emulation") Signed-off-by: Zeng Heng Reviewed-by: Ben Horgan Reviewed-by: James Morse --- drivers/resctrl/mpam_resctrl.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/resctrl/mpam_resctrl.c b/drivers/resctrl/mpam_resctrl.c index a9938006d0e6..161fb8905e28 100644 --- a/drivers/resctrl/mpam_resctrl.c +++ b/drivers/resctrl/mpam_resctrl.c @@ -217,12 +217,10 @@ int resctrl_arch_set_cdp_enabled(enum resctrl_res_lev= el rid, bool enable) l3->mon.num_rmid =3D resctrl_arch_system_num_rmid_idx(); =20 /* The mbw_max feature can't hide cdp as it's a per-partid maximum. */ - if (cdp_enabled && !mpam_resctrl_controls[RDT_RESOURCE_MBA].cdp_enabled) - mpam_resctrl_controls[RDT_RESOURCE_MBA].resctrl_res.alloc_capable =3D fa= lse; - - if (mpam_resctrl_controls[RDT_RESOURCE_MBA].cdp_enabled && - mpam_resctrl_controls[RDT_RESOURCE_MBA].class) + if (!cdp_enabled && mpam_resctrl_controls[RDT_RESOURCE_MBA].class) mpam_resctrl_controls[RDT_RESOURCE_MBA].resctrl_res.alloc_capable =3D tr= ue; + else + mpam_resctrl_controls[RDT_RESOURCE_MBA].resctrl_res.alloc_capable =3D fa= lse; =20 if (enable) { if (mpam_partid_max < 1) --=20 2.25.1