From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 0C2A0283C9D for ; Tue, 11 Aug 2026 13:36:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455401; cv=none; b=hwVibFTnnr5pA8VV3PX5S4VweSgJvOOcg+xpricfpDe6vRkSbP6Kc1+KjB7nbRkYw5quikW6cuS8hRE9CuTgQcmkFT9tE5jqYraLR2CB5NSLXH2JNCZEZYCvd/HqsJ8LZlGfgECQOycgS0LEmE0QBv81oxg+jhh4PTAXDJxf3f8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455401; c=relaxed/simple; bh=Q1SO6EtCR75JXe3JpYCv7OaNJuuMIm0WdKd+5Zw+RCM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j3F9+xsjSIpwanEcmVoMFKDgEWkDe/+jRgMOz7PUOGd0RN5JeChBXXovFfwbY7DcQpsXsUOIdQwFkOE2zyby50Ja/JyLQN4pRtrylHXtHhjNsASyyTHlwM0LCKXOJ9JVpeX/7k3g+s6TfOTh2ZfSAloTlWZrNFVJk/XLpHlg89g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=U2gkZ9kT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Tm9uzlnh; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="U2gkZ9kT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Tm9uzlnh" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWtFF693942 for ; Tue, 11 Aug 2026 13:36:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= tcHuExv7ntKhJgMZFmAB7i1tSGwudIpTtAVbjxinbE8=; b=U2gkZ9kT4fXXVfKB k6aUBJ5qg9PHk2L+Hg8bzEgMuFxRbvXBD75KVzXlwX0rCVxDKm4gwIs4BZS+CEqV nqCi259M9RdF2zdZCAcoSxUXcvIRYJuzM6dsaGgxF/SEzOxrqCOfjPTYaFeoKbfC UKc3RtwCKvfF/Iiy2Mt0ZbiiR+sMvngrUxkTiXwDwVWnIX+Ai8OfVd5vPsHJgUaf I70lZH80TiUtd0jSTdVhPVYiAtlEANm/KEoCQc3djJI7wxxoiJqSQ2wduRc9J9Yx CgRX1V/ptQIDhvZNOgnjHVvd2JTIJBIzCp+jDR4gfxVsiJv7pVSYACuglCDRTu4R VA9syw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g049gr61m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:36:28 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2cec4226c70so58888965ad.1 for ; Tue, 11 Aug 2026 06:36:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455388; x=1787060188; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=tcHuExv7ntKhJgMZFmAB7i1tSGwudIpTtAVbjxinbE8=; b=Tm9uzlnhUiwp4UTrw9d1K3hBtDdABGc5qiYQxCl570F2cJjPF46JfVbwMvMtcExFhU iGEM5AT5IPY4Reup+q32RHHDuBpDGmfnF0QQfC/I2Y6WgLDIdFADTFkOMi2fdJ1OsM43 cBy6sTSNtsNLx9fK+gUUt+Y7z8mqNjTUvOT3Fp6bdb/YE92T4kHRdQP+2ds4Fq/rcRd7 JX7DyfduQyz3PopIirGOBTo+3FOJTCUkrXFKHeAT4KkLkPyTA8NSfwvJrgUMB6V9t6Sa gO8ayTCW0BB6EN4vGGdjFiTSe1+ClOwPVicDavAmnyzTqHmLnqBLar38bfDysXJSItH1 kCuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455388; x=1787060188; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=tcHuExv7ntKhJgMZFmAB7i1tSGwudIpTtAVbjxinbE8=; b=bSUnCj4EnWW0uAfuyFSbuNn+8zSTUJuTkTqs7LFDj0EJ1hfePOtZlUZZgnfhBtQMw7 eZrFLxd6KtvZ+fLkako/KT177Xh7H64SaAN009BOe3MlKVnqmi2e602KbPjH4VQoUxNv P5dcagcl6kSDSD53vOy6Ki/Ws3eqo5v7bXTQOvQMjKgnj6fypP5TSvenajWgYdXzKP1W O6uYKcG6Yec3CvPKrsy51cF+JJgyzPqXvMNywdGVK5MHUUy9DxxUIr0t0iffWJ3EW/zb DrH17l8TjgQlLQz5bzcHFJcE3e3AgSCCVNpHvcEetTgJsqODhiv7eYZcznKsYtBM6t+0 Bstg== X-Forwarded-Encrypted: i=1; AHgh+RrAtgwn0x3rtRBBWr6te+ADFGEbk6NiB8Ff6i0TzGDM5Vkst6E7rlu/a1LzALqEVx4h7q3WK1XBJJrqlDY=@vger.kernel.org X-Gm-Message-State: AOJu0YxegxebRO48AmK9j/XE1Nubyvk/+gE/gPg/i1RHh99NLKCZUeLL /tj25+kw7Q9D4lMfTUv4Rlm9lWw8XLAf5Cnb9meXR7sRJWhW7trayeZOPIxJypPOOZnnVX6EfxD fr7Z9d/Jx/xlgVOBxpz011mjMra3j8gIx8gjJtckYJKw3Rp2YFIldBDidNNALdziHLm4= X-Gm-Gg: AR+sD121lGsNzEwA1T3RINGodETqzK22wbCc2Oh12EsdKzuqOZXxue5jLf7vJPEX98H HXyTRBZ6CtSfljwCGgJ1sS2eTT37WJRS2n4rCu/ogehCyMadacxIORzVilM9nv/i1lFLHFNpG+8 OAZ2W6MHoxEhCaPVlJ05X+Y6XEjnesebaErDXtcMcv+ORbPTP6f03z8joPQglZGZqLr5RUtNhTs 2NqKar8dGP/sSHwIlrRFfL3adC7/VyYzAYrdkilqnDpEc5Rekq1JWJZZkHRwpVuZ/l77ktOEVDi eCeEutDvBmjyV35C5cPOrkiFs3TRh2VNw0bJee4DLjUvWLUiG4zZ20uIeDKMUJEJBjcLQalhNEV urtunoCoM6JrcQQjMSRxcVy1b8HwDFKkdl9x1W0dzHohDYJKvjutq3MyZ X-Received: by 2002:a17:903:947:b0:2ca:d151:383a with SMTP id d9443c01a7336-2d32c0cc361mr7441135ad.20.1786455387789; Tue, 11 Aug 2026 06:36:27 -0700 (PDT) X-Received: by 2002:a17:903:947:b0:2ca:d151:383a with SMTP id d9443c01a7336-2d32c0cc361mr7366555ad.20.1786455343945; Tue, 11 Aug 2026 06:35:43 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.35.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:35:43 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:30 +0800 Subject: [PATCH RFC 01/15] dt-bindings: arm: Add MPAM MSC binding Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-1-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455317; l=6447; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=Ow6nsjOKfT1BtZK/wCsIgEjpwtBp/p95hFXIvpOx3ZI=; b=EdSUjmcrYtIFf72Wox7OPHGBvrR9StE8yFfxh9fmh0idDUwcfqgLknc7J1AmdnjMfVXof7Ltl H5g9SbLwKLUDMzkG/puZnPQsXNTSXdUJ8eozCOIenLS2lVhPtG/cR70 X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExMyBTYWx0ZWRfX6cQ3+m4fQsaq tHP/bTYqaBGrfuZ18Fs3oW/xS+KNgkmVhxv7iVupay2++3bwNjuMqoXpLfak4Bzb9cD5+ougDxk mskCdJLR0DetU1tI4ce41u6bp2O19a0= X-Proofpoint-ORIG-GUID: 5_D3h2zGG0TzAHzc4ogeQIsY5ic2bkU2 X-Proofpoint-GUID: 5_D3h2zGG0TzAHzc4ogeQIsY5ic2bkU2 X-Authority-Analysis: v=2.4 cv=cvarVV4i c=1 sm=1 tr=0 ts=6a7b255c cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=gEfo2CItAAAA:8 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=FqHZ4tX-ONj_CKorFbsA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=sptkURWiP4Gy88Gu7hUp:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExMyBTYWx0ZWRfX3UnZPmdIW24a mx8Uf/ZwzTz67wma+9d52lZnOH176GdUN5pdl/xoYsZEJbvK8gX1uGziXaX8t36ie7WHRJCTK8L EahYf8pz5oO7HcSVZUBsqgGxagPci4WB2lBGSbEZ2p+AEjK4D4VX3i+C4gij3QY6Aya6/MtLp4b H1a8HG/o286hiXBczo54idLkCm8okDGnDV486/39iuHHZHFR0/3sZKFMrbwz0kq3lGnqQlS0FJa fsbU03Byrq+i9Zybvr00R5kpby2Fwqwg6Hg0mjDOVkA+rUZnRoZP3Lg8RpIVHqyi4CUhVGpKAes e7mXEx0b7tk03h6BDTFvykt36J7x+TnoMKMcrsEzR5Wq8yGS8nYIQnJaH+AFOdyZlMjun07X5ld tWnGeEozE9nZ8DYWq2gE0sRa226MIYRXPLT7mYQ8NYGnqV2IG44PD0tdMneHSo5soh8O1GfdLdm cwVweydMjiHc8o17LEw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 clxscore=1011 suspectscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 impostorscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110113 From: Rob Herring The binding is designed around the assumption that an MSC will be a sub-block of something else such as a memory controller, cache controller, or IOMMU. However, it's certainly possible a design does not have that association or has a mixture of both, so the binding illustrates how we can support that with RIS child nodes. A key part of MPAM is we need to know about all of the MSCs in the system before it can be enabled. This drives the need for the genericish 'arm,mpam-msc' compatible. Though we can't assume an MSC is accessible until a h/w specific driver potentially enables the h/w. Cc: James Morse Signed-off-by: Rob Herring Signed-off-by: James Morse Signed-off-by: Yin Li --- .../devicetree/bindings/arm/arm,mpam-msc.yaml | 199 +++++++++++++++++= ++++ 1 file changed, 199 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml b/Docu= mentation/devicetree/bindings/arm/arm,mpam-msc.yaml new file mode 100644 index 000000000000..53a6fdbbf05f --- /dev/null +++ b/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml @@ -0,0 +1,199 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/arm,mpam-msc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Arm Memory System Resource Partitioning and Monitoring (MPAM) + +description: | + The Arm MPAM specification can be found here: + + https://developer.arm.com/documentation/ddi0598/latest + +maintainers: + - Rob Herring + +properties: + compatible: + items: + - const: arm,mpam-msc # Further details are discov= erable + - const: arm,mpam-memory-controller-msc + + reg: + maxItems: 1 + description: A memory region containing registers as defined in the MP= AM + specification. + + interrupts: + minItems: 1 + items: + - description: error (optional) + - description: overflow (optional, only for monitoring) + + interrupt-names: + oneOf: + - items: + - enum: [ error, overflow ] + - items: + - const: error + - const: overflow + + arm,not-ready-us: + description: The maximum time in microseconds for monitoring data to be + accurate after a settings change. For more information, see the + Not-Ready (NRDY) bit description in the MPAM specification. + + numa-node-id: true # see NUMA binding + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +patternProperties: + '^ris@[0-9a-f]+$': + type: object + additionalProperties: false + description: + RIS nodes for each resource instance in an MSC. These nodes are requ= ired + for each resource instance implementing known MPAM controls + + properties: + compatible: + enum: + - arm,mpam-cache + # Memory bandwidth + - arm,mpam-memory + + reg: + minimum: 0 + maximum: 0xf + + cpus: + description: + Phandle(s) to the CPU node(s) this RIS belongs to. By default, t= he parent + device's affinity is used. + + arm,mpam-device: + $ref: /schemas/types.yaml#/definitions/phandle + description: + By default, the MPAM enabled device associated with a RIS is the= MSC's + parent node. It is possible for each RIS to be associated with d= ifferent + devices in which case 'arm,mpam-device' should be used. + + required: + - compatible + - reg + +required: + - compatible + - reg + +dependencies: + interrupts: [ interrupt-names ] + +additionalProperties: false + +examples: + - | + L3: cache-controller@30000000 { + compatible =3D "arm,dsu-l3-cache", "cache"; + cache-level =3D <3>; + cache-unified; + + ranges =3D <0x0 0x30000000 0x800000>; + #address-cells =3D <1>; + #size-cells =3D <1>; + + msc@10000 { + compatible =3D "arm,mpam-msc"; + + reg =3D <0x10000 0x2000>; + interrupts =3D <1>, <2>; + interrupt-names =3D "error", "overflow"; + arm,not-ready-us =3D <1>; + /* CPU affinity implied by parent cache node */ + }; + }; + + mem: memory-controller@20000 { + compatible =3D "foo,a-memory-controller"; + reg =3D <0x20000 0x1000>; + + #address-cells =3D <1>; + #size-cells =3D <1>; + ranges; + + msc@21000 { + compatible =3D "arm,mpam-memory-controller-msc", "arm,mpam-msc= "; + reg =3D <0x21000 0x1000>; + interrupts =3D <3>; + interrupt-names =3D "error"; + arm,not-ready-us =3D <1>; + numa-node-id =3D <1>; + }; + }; + + iommu@40000 { + reg =3D <0x40000 0x1000>; + + ranges; + #address-cells =3D <1>; + #size-cells =3D <1>; + + msc@41000 { + compatible =3D "arm,mpam-msc"; + reg =3D <0 0x1000>; + interrupts =3D <5>, <6>; + interrupt-names =3D "error", "overflow"; + arm,not-ready-us =3D <1>; + + #address-cells =3D <1>; + #size-cells =3D <0>; + + ris@2 { + compatible =3D "arm,mpam-cache"; + reg =3D <0>; + // TODO: How to map to device(s)? + }; + }; + }; + + msc@80000 { + compatible =3D "foo,a-standalone-msc"; + reg =3D <0x80000 0x1000>; + + clocks =3D <&clks 123>; + + ranges; + #address-cells =3D <1>; + #size-cells =3D <1>; + + msc@10000 { + compatible =3D "arm,mpam-msc"; + + reg =3D <0x10000 0x2000>; + interrupts =3D <7>; + interrupt-names =3D "overflow"; + arm,not-ready-us =3D <1>; + + #address-cells =3D <1>; + #size-cells =3D <0>; + + ris@0 { + compatible =3D "arm,mpam-cache"; + reg =3D <0>; + arm,mpam-device =3D <&L2_0>; + }; + + ris@1 { + compatible =3D "arm,mpam-memory"; + reg =3D <1>; + arm,mpam-device =3D <&mem>; + }; + }; + }; + +... --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 F25D3429003 for ; Tue, 11 Aug 2026 13:36:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455410; cv=none; b=PzBEBYh9d35FT2qOtv3eVCtvUa8K2RHUqt35DasL7h7x8B9efvaacBKyvKkm4snliAuktVYeLQk9m/kFhWeL4FfTb6sRmBfysmXk7OgOCW8Vz7TY0k1+f9bD3iEg/jUALKZ7+qmY7BZYCEjjHSAAz3wOtdJwNi/7Q9lewuZxA9Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455410; c=relaxed/simple; bh=N3m1XL0qPMrLpj2KyTA3YfQe/8CjzIGFh9rILUSGz/Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z44gHCripotzHmzS1oIAIlh8B4d7NAbldv/2QOsYpAPXN6oTWHwboPCNSQz3hR9WrRp5vyJhMSfKjrw9VjgUnZFVunZbgGHWLpPiwFKSirBMz0gsdowDCdEQehAssHBbDBxYksnqjRmm5jfc2U1rP+w7I/NdDz1FTAxsYldCZXk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=pp5HpowA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BsjVs4VT; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="pp5HpowA"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BsjVs4VT" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWUSp1913888 for ; Tue, 11 Aug 2026 13:36:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7DvmSimw6MjnY/L40N+LcEDCs6VLUnTtNUZQ4Z7jK70=; b=pp5HpowAMbgw8XdN eTRCiktsKj+M4AUVnmlr4Ynh4R2fkZal+MF4jaJh75PD+rku+wMTVXiAcCBBIQp/ 4qb4z1JUHmrzKUah7TT+dF78K1p883uQMyMPCVduVb3AhdwT1/Cs4PfkA1JYXQsy YlKt/HJXuFMycAn1XybF/aZpcmdmGGKnOrEIl1Db8SEnbR7N0CI7Yi/4ALld637f fO8oM5J1dq3KBqhUr3ZBfI1k7X90u7J2kQX29RMaXsRikf6bLtEf1snyY1MTEtwQ 290K+amicVP0mfBsoRX9tV1e8LWkay5p+QWg18z0VfI/MjLyNwCq5E9URUpoCAJk Lp8IgA== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g049br5e5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:36:32 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2cee1ec30f2so40375115ad.3 for ; Tue, 11 Aug 2026 06:36:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455392; x=1787060192; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=7DvmSimw6MjnY/L40N+LcEDCs6VLUnTtNUZQ4Z7jK70=; b=BsjVs4VTrzg9f9+tGkyd5igPCiGQasoycvCVTw6bfUzoXSO2irpplM+uyIu3FJBXnJ WLdPy8FiCoW9hTWv92D3EcNOpEP99HF52nUqhlPfDt9eEGI3tyFpFLomGzHOloII+NDn MGN7BBlSxaLC5XMAvTQYUPKM+WtpmXYLDn8OByaWz3hF9ZadD+LGr+Ujrw5gs7IwhHW0 C7x+sYLZT5wRsmjIrErK5eALPFI8ex3SV1+VvAhcrXi4RsGEkuF1mq11Ej7C+Y+dZTgT egy6jPD5946Ivq5tP19GKAOA8xG2O88xL90JWU3LR+M8UgU9mxj/Zj7TiaB2wonBlznG +o+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455392; x=1787060192; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7DvmSimw6MjnY/L40N+LcEDCs6VLUnTtNUZQ4Z7jK70=; b=YqTPAgoxOFrGwZu2KXY1kJamOo3UX6bkdpUQrso3gF3QE9e80gFjVGb9PDo/LrJlda GyZLpvcJ/mLI/JO1ceo3mlZyXM4fQwVlfBUWuyK9+x6lsVvXSekUcO1D3yqVCb1xEuWh 9kx01A8CmD3+UBw1f/kJ5uXi6W2tKkTE8LeHrO39nCheByMcrl8YvwWTOIoAT5LbjuiR 17+4tz0WmDH5mDeVSxFuJShkq+zDhOE7XVSL2hkWZTwe64NxY3bspX052jBk2WTAknT5 DuXY19aUFqyvTBhLdLUoOm/fsT3ZnFLmuxcduK/pK+mlkAuTkT8Ecxq2Urb2pxKrAnOU cWTQ== X-Forwarded-Encrypted: i=1; AHgh+RppbhVu4inc+RGoMoRPEGecTaxs1QZlPkOdnkRTRoTmlflnk6wtGCgsKMAijkoVpXXklvpGfUUkERCOgNE=@vger.kernel.org X-Gm-Message-State: AOJu0YxIalWKrJ0jw3A2EfMmsqiegTc7GEY4q4z5ckuD07sD7oWDbqQS pNG2lnTSnuR0fiTZQzrBS9E5Q7A6sDpjkAcf8aAF3Corv+dCGK6HxYBOQqRNqZaN6ogp8KJaxKn Jb3SZXez0OYbuBXPnqS1yGZ7gCxUR7pAB1zAq8C3cvkP60L0Hj/SYuQuXda/rZ/FC9XSUrsTwem k= X-Gm-Gg: AR+sD107gzF6gZ86JLGQWqD+YU74IZ4CQkT7P63VVDDzr9o3Fp4qV4wrN2HX9fKsiT/ PvyBw81Y9KOSiG46TdwCTDHl7GR8q8ZOpxspJfZ+qE6IpcUDIjNkaiaHcoHLjTkS502PgWuA2wG HhTS4mdReKagzfIVEJYfCOvaPx2AoN5O8TaiNenlqjJb+BkzXDhW1a5G8bmypzyiIfM1Y2R1nj3 bV81RlWbVsUwD57z1Ikpde2VugphYZDDHlTw0QpWz2XhUt4Zq+0hktJDh5xP9E3oJSFIo+1TCXI pE8h5rYF9NGPG5aRLweXTaqzNP0XWk2/KUQeSmFfgchJoAwYikHW+sYoEKA1ihnnE2aSeMAGb9i HTXMHDVrw6RbYV0A0fQloBK6qbQxHHUlIxKtttXR8e+bXJfimYAZe5FPc X-Received: by 2002:a17:903:3806:b0:2c0:e2ea:6b0c with SMTP id d9443c01a7336-2d317980936mr42837015ad.21.1786455392004; Tue, 11 Aug 2026 06:36:32 -0700 (PDT) X-Received: by 2002:a17:903:3806:b0:2c0:e2ea:6b0c with SMTP id d9443c01a7336-2d317980936mr42836205ad.21.1786455391438; Tue, 11 Aug 2026 06:36:31 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.36.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:36:31 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:31 +0800 Subject: [PATCH RFC 02/15] cacheinfo: Expose the code to generate a cache-id from a device_node Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-2-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455318; l=2592; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=MXjxI8aXZOve7L6eY3Z0pfsNkIuJWimjX2RUSvdJo0s=; b=tFvguMHAOvkvqMWbftI7gnFeyKM08znnE0fHHSS1YnhpWLICqjPJfxeyU9haSU0Ald7wq36s/ iaEcEDz8J/TA41xAWG0xgBTzt24tbfixOhDF892Zf1EP6Wq2tJuCwpY X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-GUID: 39w-9IRyDW7zS-9o4ZOlpWs6muIBEpRT X-Authority-Analysis: v=2.4 cv=ENg2FVZC c=1 sm=1 tr=0 ts=6a7b2560 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=NSEGM1D4AEf8_kYA:21 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=YGyWITW8jF7qUHxv7J4A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-ORIG-GUID: 39w-9IRyDW7zS-9o4ZOlpWs6muIBEpRT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExMyBTYWx0ZWRfX25on9o2CwrsG W9AbAK7LHis0B8mbQU0fJnRkHI73/oM5X+PNYr19oXCbLIvMKxfMus6q9F31w7a4IP9xfnhOuDn qtx6m0ewxBvhwFZylg3v2bCSqmM+3K5d3IIWW37PGAQAkWog5pWvFVdoYvmbLSKhhfc8+yi0yuo ZYqh+RRQd78Zao9ZavbIzDaHOoOcl8vKsSWn6+sXS3ZFGbPAB+Ta5pL98ZP2x1oqAw3fo2ubYv1 gfMRtb1LpW+VEoSA0N7XurY1U7kSv29DRRKi1wRR94X+YiOb4hmtFghN5yUx7Du9cquw8wd7JU8 6KKWIuiIpgXe7uktvrfTdYfRLT48P2Y7mHTl6fJfFuHBIDeX3hglWpeGEE35XxMABsfSspOu5b9 DI2YRznijGBeAcIcj9327UULtjsbvYGR+NetMSERXpnG5jGKIKXJ1ZtNofN2owXIGPATTm9grgY jlS57MpWmZgxtQg6qyg== X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExMyBTYWx0ZWRfX19cnba/SQMki Uogcv9LvAnvxUj9YwXEHxy4M6Yp9e9GJEZMrdCe+aX1vtHBs+S2jqt4Hs5vL5XDCOuNnGW6VYTP HNFP84n4OGKPBAdwk1Hk85YXOZGT54g= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 impostorscore=0 bulkscore=0 clxscore=1011 spamscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110113 From: James Morse The MPAM driver identifies caches by id for use with resctrl. It needs to know the cache-id when probe-ing, but the value isn't set in cacheinfo until device_initcall(). Even after device_initcall(), the cache-id is only available if at least one CPU associated with the cache is online. Instead of making the driver wait, expose the code that generates the cache-id. The parts of the MPAM driver that run early can use this to set up the resctrl structures before cacheinfo is ready in device_initcall(). Signed-off-by: James Morse [ Yin Li: fix context conflicts in cacheinfo.c and cacheinfo.h; guard the cache_of_calculate_id() declaration with CONFIG_OF to prevent build errors when CONFIG_OF is not set ] Signed-off-by: Yin Li --- drivers/base/cacheinfo.c | 17 ++++++++++++----- include/linux/cacheinfo.h | 3 +++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/base/cacheinfo.c b/drivers/base/cacheinfo.c index 9f9c72727a05..f75e7f64038b 100644 --- a/drivers/base/cacheinfo.c +++ b/drivers/base/cacheinfo.c @@ -226,8 +226,7 @@ static bool match_cache_node(struct device_node *cpu, #define arch_compact_of_hwid(_x) (_x) #endif =20 -static void cache_of_set_id(struct cacheinfo *this_leaf, - struct device_node *cache_node) +u32 cache_of_calculate_id(struct device_node *cache_node) { struct device_node *cpu; u32 min_id =3D ~0; @@ -238,15 +237,23 @@ static void cache_of_set_id(struct cacheinfo *this_le= af, id =3D arch_compact_of_hwid(id); if (FIELD_GET(GENMASK_ULL(63, 32), id)) { of_node_put(cpu); - return; + return ~0; } =20 if (match_cache_node(cpu, cache_node)) min_id =3D min(min_id, id); } =20 - if (min_id !=3D ~0) { - this_leaf->id =3D min_id; + return min_id; +} + +static void cache_of_set_id(struct cacheinfo *this_leaf, + struct device_node *cache_node) +{ + u32 id =3D cache_of_calculate_id(cache_node); + + if (id !=3D ~0) { + this_leaf->id =3D id; this_leaf->attributes |=3D CACHE_ID; } } diff --git a/include/linux/cacheinfo.h b/include/linux/cacheinfo.h index fc879ac4cc4f..c33bb3c8bd63 100644 --- a/include/linux/cacheinfo.h +++ b/include/linux/cacheinfo.h @@ -113,6 +113,9 @@ int acpi_get_cache_info(unsigned int cpu, #endif =20 const struct attribute_group *cache_get_priv_group(struct cacheinfo *this_= leaf); +#ifdef CONFIG_OF +u32 cache_of_calculate_id(struct device_node *np); +#endif =20 /* * Get the cacheinfo structure for the cache associated with @cpu at --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 426F737A84F for ; Tue, 11 Aug 2026 13:36:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455429; cv=none; b=Jf4QIEujf8k3fLWAp9VRMVOUbK2psF1Gtd7XXJsX8Ugb9rZ8emxBy46srkH9yqoEe/VgrM9PXP7aT6nLRnuQYBTYdWqWegFMyvHV/xbXLfAeZgPBxrluRw2P2avYRu8R7Lwt1LuG0N5bw4tW18akO3YcHxItLDVZEgd4fmpyM5E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455429; c=relaxed/simple; bh=9GwUwcDp0cWDqPeRNSC1o7QWenpp9qsp8edoOzPBWBk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VtwSdPVc1e/lUQXfD91RKKydXpi6to8i8f33OK1c4fJOUlPavm59mj38P4eFGTD2V79ksM2GFuVqRcBSEwbTBkWjaR7djTckoDpHdOjFw35kPc5AyXf5mgkE3eMppfVzIbLc5u9JZUQS9yrQ6tNfXtsP/Tfqhd5Go2Rk6PTnv88= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Yvro932y; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HsEs2xqB; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Yvro932y"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HsEs2xqB" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDX8Ok694280 for ; Tue, 11 Aug 2026 13:36:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= oUCwiqYDeDo3DpzREtnih6+/Yo4qtRWcBfYiTDr4db8=; b=Yvro932yHqkvMT1m 3+gCaZ2H59ADt3GeMp951oEZozTD//PaugBhwBC5YHps+vot4dybaDHKPB7y78B2 mIdif1PvSvf+WhdXlCXrBX3pQdjGwporE+eYCBwpCTMg4rhK/XvcKD0QBTyYM7I3 X1JhrLeCQjeRYwdC/oe4MFajOFLW86RDgGWKwQuIf4O2TkSiThJI80374k4t14GH Hy/JEzyEk6wGjL2EZB3ZIl8azAKw+53oZSRC8Spa0t4/msi7jFaAP83T2kr7c/YP 74D15u1vAHGPkQ7vs2Qs8wMgTy21OkBER/mlD9PVhZGZrP78g/RhgGtrWHuW353b YCskTg== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g049gr62d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:36:39 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-cb48f41343aso707104a12.1 for ; Tue, 11 Aug 2026 06:36:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455398; x=1787060198; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=oUCwiqYDeDo3DpzREtnih6+/Yo4qtRWcBfYiTDr4db8=; b=HsEs2xqBy/uapDzcUHnMQw8znhurxxHc2TujBuxaaYXhBCMfwI+bsmpnckJqWrWE9g VVXpHuVw1ffLYTt48ctXiCqrsbJyKhcQ6AOYJzrvyUUf2Gy5sC3D0DRSOkSn/LG2ycdZ UM1zmu+AwmunzeDNoq16gcjvAZ0pxsfxKmWCpd2j8p4oeYEuYDAwcScOABZVaLMQ5a90 3mcEHZx4neChh1JFlAfIYzkMVtGQFwNOuFihoc7vq8WTOhGA/zOaxBosuBIBm+iJKfeQ p8xkqtU/94aXaaxqDh9q0J0URkWvIgUQvK3iCjvmLeZHoIpOSziz1ifl0HwqBRCsU7/O LeQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455398; x=1787060198; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=oUCwiqYDeDo3DpzREtnih6+/Yo4qtRWcBfYiTDr4db8=; b=C5nFWW6XLJMy/p8ItaUvlQ+K+BTr51W3BfCQBiUjn0aaObR/cKlDkXjecjnGUTvdAR LESIkuaMrm993PxGdKztaV8hKxd245JZvZI42s/0d31NsBL++4efULq9BLykJfU0ca87 ENyXTCXa8vvyFCi3wRcqfrSgn4nRW7eHbiV3/TXOiKc6RGOn350V2WflhID48uOjDBF4 iC3eIdnoHBdeUy4+1y42PQzovGK151cGBRUBFepHEZxE21575BfcbmHXukeqJ+zw/cHU nyqr7mI5qAOEy13dE/Ww8iXHznMQqENfNyattgMtFG+GNPlnxXKd8MPEW5ptKjtQ6B0A Dh7g== X-Forwarded-Encrypted: i=1; AHgh+RqfUEv4DfBSKpaA5uosH1pBs86c8GDw4eBRw+Zt2ApF3LnD78nTnyk0mojZfn9DPmcsnZvLqvOsSTd5pw4=@vger.kernel.org X-Gm-Message-State: AOJu0YwlzjU6Zno1ZbhmJBhxXBiF0tYGSUQQrBE/TxBih8555l1vFabC TK9uQbI7XYGRQfpfkNMdI3Sqt2xXkkCmW0+1Wbj40RQoXv4OXgjz4xPH7nxUvfck6wE6t6HLdFD oNvszw76humQJFyOhwx1a+BIiccj+P94NPB3/SK5Pk2ENyg8GSMcBIWyFzjfqTROQjm8= X-Gm-Gg: AR+sD100Hj+Tk8vn/w0w+vU7Cko910WOft3skP59rrl5nfj33wEljvekWwEAONX/NF2 d7WDzxBinzcsw6PQ/0c4D2PjkCX/69EsM7zGqI9M1A7wYmJfbHlGyPITxTDuJbfxgSvdcZlKJyi S+n9muEiSSogtMMgneYHGH4YqfzPFkYlcMtOWtArKD5lZSKL/KVIS1kdryx2V5ZTZNeUF+XlHP7 jbsZmXjMIYlmTJiwURY1AXYylPmQfmRPuLqg7dK1rutMr3PLkrgwF4xOrt2ROt/wbTw57e6Pxeb aT/HPunTlQkGQfPPO6qVafS2Jx0FP6t4L2BHKgypVtEtcXDFFPuWUmMfU2Ew4Dbr+5jsehmUMca 3uV1P0aXUKc/2CxeXau9G8KuKB7DAfbUOxhx6LcG4sLToES/kOXPdcctn X-Received: by 2002:a17:903:1b50:b0:2ca:53f7:3c69 with SMTP id d9443c01a7336-2d32da4e721mr2351415ad.9.1786455398031; Tue, 11 Aug 2026 06:36:38 -0700 (PDT) X-Received: by 2002:a17:903:1b50:b0:2ca:53f7:3c69 with SMTP id d9443c01a7336-2d32da4e721mr2350165ad.9.1786455397461; Tue, 11 Aug 2026 06:36:37 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.36.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:36:37 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:32 +0800 Subject: [PATCH RFC 03/15] arm_mpam: Add device tree support for MSC probing Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-3-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455319; l=10154; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=AIVi958hb81+X2XXSx6u7qKrjD/Y0gF/f2A4aVpO1ek=; b=ORemnfVeCvtL4ULCuUmX6ypKtKVB807gbq6pY1leXIdClYwxfOjqVHk7u7/pCuRso8hPJfwlk i20w8+SYdoNDwXxKa6eLAsOAsiWDPtxv6Tw4VRw731kXCjZxhmF5nfl X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExMyBTYWx0ZWRfX4yu+JDjM1+0u 3NrPNgoKmzAx8bfgXgsCJ/PGJdYslWJ0Lg33ifexeL8BgoE8/mJu1V7UckWDSH9NXDs+RDxUanh nh9CUDSk/Fp3C3m00RFdB2LnwzxPiuI= X-Proofpoint-ORIG-GUID: VAm5VUOvelam7uM5SaRVTUfNbb94ikR6 X-Proofpoint-GUID: VAm5VUOvelam7uM5SaRVTUfNbb94ikR6 X-Authority-Analysis: v=2.4 cv=cvarVV4i c=1 sm=1 tr=0 ts=6a7b2567 cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=EV56-oaTeUzE4PAi_sMA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExMyBTYWx0ZWRfX0/qqmcdhPJHS GXS0ITiPR2v7TMXAM+1x3tYUdTPTyYzvBDmN/Nf+NGClTwmry8AobYVIJPMNUPsmqEX5H0oRJyv N6k0i4BSRHShz4Bo6dM4y003r4IqZLH1WcZEUTpbEomnsdN0CAO/RJUEzU2i48f3OyobDrIF8sH pRpk02ncxnygF+N/2mjZzutcbsxUQaZfNxTtizV3gyrkWYegV+EHa1gCCCswTM+SEyR76m9FkOX g+csRH7adAvJQu3oDKh/taF/P7PM7C4L28yJEC8l/7mhNHAQ6+lGwH15OStuQ/BzEYsGLvEibwv mU7mq/Oqp4fikJ3tUneLU1Yw8jyAJ114qg21ZPttDipCMfyzGdMZpMutHSDW40omPkas0KwoUYA aX17NSeXJTGpoV1dhgDY7aHGppgU5fACW1LOrgymqVzOXel2CKSWKABDoavt+hFyCCGrAeXRvjE QRIutwB+MPJHWFkr+3w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 impostorscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110113 From: James Morse The MPAM driver currently discovers MSCs only via ACPI. Add a device tree path so MSCs can be probed on DT-based platforms: parse MSC nodes from the device tree, compute cache-id and affinity from the cache nodes and create the RIS entries. Signed-off-by: James Morse [ Yin Li: fix context conflicts; drop the existing ACPI-only stub of mpam_get_cpumask_from_cache_id() which conflicted with the new implementation that supports both ACPI and DT; fix update_msc_accessibility() return type conflict: drop the existing void implementation and apply the int version from this patch ] Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 256 +++++++++++++++++++++++++++++++++++++= +--- 1 file changed, 238 insertions(+), 18 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index dd422c56fbb1..6f2854fe08ca 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -20,6 +20,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -161,6 +164,163 @@ static void mpam_free_garbage(void) } } =20 +/* Called recursively to walk the list of caches from a particular CPU */ +static void __mpam_get_cpumask_from_cache_id(int cpu, struct device_node *= cache_node, + unsigned long cache_id, + u32 cache_level, + cpumask_t *affinity) +{ + int err; + u32 iter_level; + unsigned long iter_cache_id; + struct device_node *iter_node __free(device_node) =3D of_find_next_cache_= node(cache_node); + + if (!iter_node) + return; + + err =3D of_property_read_u32(iter_node, "cache-level", &iter_level); + if (err) + return; + + /* + * get_cpu_cacheinfo_id() isn't ready until sometime + * during device_initcall(). Use cache_of_calculate_id(). + */ + iter_cache_id =3D cache_of_calculate_id(iter_node); + if (iter_cache_id =3D=3D ~0UL) + return; + + if (iter_level =3D=3D cache_level && iter_cache_id =3D=3D cache_id) + cpumask_set_cpu(cpu, affinity); + + if (iter_level < cache_level) + __mpam_get_cpumask_from_cache_id(cpu, iter_node, cache_id, + cache_level, affinity); +} + +/* + * The cacheinfo structures are only populated when CPUs are online. + * This helper walks the device tree to include offline CPUs too. + */ +int mpam_get_cpumask_from_cache_id(unsigned long cache_id, u32 cache_level, + cpumask_t *affinity) +{ + int cpu; + + if (!acpi_disabled) + return acpi_pptt_get_cpumask_from_cache_id(cache_id, affinity); + + for_each_possible_cpu(cpu) { + struct device_node *cpu_node __free(device_node) =3D of_get_cpu_node(cpu= , NULL); + if (!cpu_node) { + pr_err("Failed to find cpu%d device node\n", cpu); + return -ENOENT; + } + + __mpam_get_cpumask_from_cache_id(cpu, cpu_node, cache_id, + cache_level, affinity); + } + + return 0; +} + +static int get_cpumask_from_cache(struct device_node *cache, + cpumask_t *affinity) +{ + int err; + u32 cache_level; + unsigned long cache_id; + + err =3D of_property_read_u32(cache, "cache-level", &cache_level); + if (err) { + pr_err("Failed to read cache-level from cache node\n"); + return -ENOENT; + } + + cache_id =3D cache_of_calculate_id(cache); + if (cache_id =3D=3D ~0UL) { + pr_err("Failed to calculate cache-id from cache node\n"); + return -ENOENT; + } + + return mpam_get_cpumask_from_cache_id(cache_id, cache_level, affinity); +} + +static int mpam_dt_count_msc(void) +{ + int count =3D 0; + struct device_node *np; + + for_each_compatible_node(np, NULL, "arm,mpam-msc") { + if (of_device_is_available(np)) + count++; + } + + return count; +} + +static int mpam_dt_parse_resource(struct mpam_msc *msc, struct device_node= *np, + u32 ris_idx) +{ + int err =3D 0; + u32 level =3D 0; + unsigned long cache_id; + struct device *dev =3D &msc->pdev->dev; + struct device_node *cache __free(device_node) =3D NULL; + struct device_node *parent __free(device_node) =3D of_get_parent(np); + + if (of_device_is_compatible(np, "arm,mpam-cache")) { + cache =3D of_parse_phandle(np, "arm,mpam-device", 0); + if (!cache) { + dev_err_once(dev, "Failed to read phandle\n"); + return -EINVAL; + } + } else if (of_device_is_compatible(parent, "cache")) { + cache =3D parent; + } else { + /* For now, only caches are supported */ + cache =3D NULL; + return err; + } + + err =3D of_property_read_u32(cache, "cache-level", &level); + if (err) { + dev_err_once(dev, "Failed to read cache-level\n"); + return err; + } + + cache_id =3D cache_of_calculate_id(cache); + if (cache_id =3D=3D ~0) { + dev_err_once(dev, "Failed to calculate cache-id\n"); + return -ENOENT; + } + + return mpam_ris_create(msc, ris_idx, MPAM_CLASS_CACHE, level, cache_id); +} + +static int mpam_dt_parse_resources(struct mpam_msc *msc, void *ignored) +{ + u64 ris_idx =3D 0; + int err, num_ris =3D 0; + struct device_node *np; + + np =3D msc->pdev->dev.of_node; + for_each_available_child_of_node_scoped(np, iter) { + err =3D of_property_read_reg(iter, 0, &ris_idx, NULL); + if (!err) { + num_ris++; + err =3D mpam_dt_parse_resource(msc, iter, ris_idx); + if (err) + return err; + } + } + + if (!num_ris) + err =3D mpam_dt_parse_resource(msc, np, 0); + + return err; +} + /* * Once mpam is enabled, new requestors cannot further reduce the available * partid. Assert that the size is fixed, and new requestors will be turned @@ -481,16 +641,6 @@ mpam_vmsc_find(struct mpam_component *comp, struct mpa= m_msc *msc) return mpam_vmsc_alloc(comp, msc); } =20 -/* - * The cacheinfo structures are only populated when CPUs are online. - * This helper walks the acpi tables to include offline CPUs too. - */ -int mpam_get_cpumask_from_cache_id(unsigned long cache_id, u32 cache_level, - cpumask_t *affinity) -{ - return acpi_pptt_get_cpumask_from_cache_id(cache_id, affinity); -} - /* * cpumask_of_node() only knows about online CPUs. This can't tell us whet= her * a class is represented on all possible CPUs. @@ -1985,17 +2135,42 @@ static int mpam_msc_setup_error_irq(struct mpam_msc= *msc) * corresponding cache may also be powered off. By making accesses from * one of those CPUs, we ensure we don't access a cache that's powered off. */ -static void update_msc_accessibility(struct mpam_msc *msc) +static int update_msc_accessibility(struct mpam_msc *msc) { + struct device *dev =3D &msc->pdev->dev; + struct device_node *parent; u32 affinity_id; int err; =20 - err =3D device_property_read_u32(&msc->pdev->dev, "cpu_affinity", - &affinity_id); - if (err) + if (!acpi_disabled) { + err =3D device_property_read_u32(&msc->pdev->dev, "cpu_affinity", + &affinity_id); + if (err) + cpumask_copy(&msc->accessibility, cpu_possible_mask); + else + acpi_pptt_get_cpus_from_container(affinity_id, + &msc->accessibility); + + return 0; + } + + /* Where an MSC can be accessed from depends on the path to of_node. */ + parent =3D of_get_parent(msc->pdev->dev.of_node); + if (parent =3D=3D of_root) { cpumask_copy(&msc->accessibility, cpu_possible_mask); - else - acpi_pptt_get_cpus_from_container(affinity_id, &msc->accessibility); + err =3D 0; + } else { + if (of_device_is_compatible(parent, "cache")) { + err =3D get_cpumask_from_cache(parent, + &msc->accessibility); + } else { + err =3D -EINVAL; + dev_err_once(dev, "Cannot determine accessibility of MSC.\n"); + } + } + of_node_put(parent); + + return err; } =20 /* @@ -2123,7 +2298,10 @@ static int mpam_msc_drv_probe(struct platform_device= *pdev) return PTR_ERR(msc); =20 /* Create RIS entries described by firmware */ - err =3D acpi_mpam_parse_resources(msc, plat_data); + if (!acpi_disabled) + err =3D acpi_mpam_parse_resources(msc, plat_data); + else + err =3D mpam_dt_parse_resources(msc, plat_data); if (err) { mpam_msc_drv_remove(pdev); return err; @@ -2136,15 +2314,51 @@ static int mpam_msc_drv_probe(struct platform_devic= e *pdev) return 0; } =20 +static const struct of_device_id mpam_of_match[] =3D { + { .compatible =3D "arm,mpam-msc", }, + {}, +}; +MODULE_DEVICE_TABLE(of, mpam_of_match); + static struct platform_driver mpam_msc_driver =3D { .driver =3D { .name =3D "mpam_msc", .suppress_bind_attrs =3D true, + .of_match_table =3D of_match_ptr(mpam_of_match), }, .probe =3D mpam_msc_drv_probe, .remove =3D mpam_msc_drv_remove, }; =20 +/* + * MSCs that are declared by the firmware as being part of a cache may not + * be created automatically as platform devices, since there is no + * dedicated cache driver. + * + * Deal with theo MSCs here. + */ +static void mpam_dt_create_foundling_msc(void) +{ + struct platform_device *pdev; + struct device_node *cache; + + for_each_compatible_node(cache, NULL, "cache") { + struct device_node *cache_device; + + if (of_node_check_flag(cache, OF_POPULATED)) + continue; + + cache_device =3D of_find_matching_node_and_match(cache, mpam_of_match, N= ULL); + if (!cache_device) + continue; + of_node_put(cache_device); + + pdev =3D of_platform_device_create(cache, "cache", NULL); + if (!pdev) + pr_err_once("Failed to create MSC devices under caches\n"); + } +} + /* Any of these features mean the BWA_WD field is valid. */ static bool mpam_has_bwa_wd_feature(struct mpam_props *props) { @@ -2963,12 +3177,18 @@ static int __init mpam_msc_driver_init(void) =20 init_srcu_struct(&mpam_srcu); =20 - fw_num_msc =3D acpi_mpam_count_msc(); + if (!acpi_disabled) + fw_num_msc =3D acpi_mpam_count_msc(); + else + fw_num_msc =3D mpam_dt_count_msc(); if (fw_num_msc <=3D 0) { pr_err("No MSC devices found in firmware\n"); return -EINVAL; } =20 + if (acpi_disabled) + mpam_dt_create_foundling_msc(); + return platform_driver_register(&mpam_msc_driver); } =20 --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 D104A43B3EB for ; Tue, 11 Aug 2026 13:36:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455413; cv=none; b=ZGKf6AmOCfzuYszBviATgnCTT4DGW2Uev2z6dd7sNaePA6HBeF5UKrjWH6jjH/S9o9+Hlz/kLzxSu74RP4Cox1G1r+aaoQLpK6gxwbnCZmym6fOlYpiPuDMwA0FeY1n9pN1uHW9AcVYn3qUOw7F9tqVIzQYJt/h0DijTk6UBe1M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455413; c=relaxed/simple; bh=lZ3hVt+WlwklbdtG7M89GyTP4rgmy4YOt5B8YbrfdC0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hma9H33lbruvOcNPp2P7HxPEAHYRyTbxljXe8FSOr+zvAQmdROBzoj5bZfiI/uaLmoUTkEw+LtgRgfFcfFCoIsjeV2i4vlsi7n3M4gD14w1Vx0uzLV4Zy7QPanXFi07vobZNp75MRpzHRMpsf6MQXeiTspR/m2qlWqMzSfcnnfo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=C+rt6qog; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kXrz8Xfl; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="C+rt6qog"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kXrz8Xfl" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWveR766913 for ; Tue, 11 Aug 2026 13:36:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 3a2o8hU2NX4G4KDjEtUlg8W2ms8vxwfj3DwVKsft2S4=; b=C+rt6qogYBOLcBHe +pBmbA6KVFNnsZjDlllr/6iyK7T5kZHtu5nqzomPVRe11lbm+yQmk+1ItnCtq9Bh 03Qus4Fa9u+jmqLEKETOdv3eu8m9xMZNg+Ir/1YV/0TjRRpWVzvw/gZFfBUFBqpn vgUR09FFaK8UtAllSCNo6vDk/VsqcCW0TwOXL+7twLiXfW65q0vzPpjdA4vIloDQ L05qnc8haaT+koP79OY8LHFcj2LpbfTjGiX7OvtRNFwZFM1e2dWNX1A8kMbwhkiy yeQi88lyMPy4B3wCXk2Qajt4hhGh4HkWH5widIyAVAiioBet+fyhEEIutaOaFkif uwVouA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g01q10q6k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:36:44 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cfc52ddc55so46140805ad.3 for ; Tue, 11 Aug 2026 06:36:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455404; x=1787060204; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=3a2o8hU2NX4G4KDjEtUlg8W2ms8vxwfj3DwVKsft2S4=; b=kXrz8XflCV1Xa8nPoDXs4heMqqTYwD3zAZdPoU8vAP3nn5HE2KGQZsaQ3U+Z7Ojbhw YrEyCOOQoHb4Aj9uKSR1c9JuZxESUFAJ5PhV6kaLWBjF8fzNmZATQkWyj5NqyCtnqOce ItAqE9bQYYx2qc15x+xY1R/+08llxuDUrotQI6lFQp83aeqzDmlgZhRLXyouln1j01dN NzXV3sTnSWD3EmzCZDEU5ZUoEAZvmPei4hG0xet8v0AzHFbeMx4puGdCjaRJponMc/4l DsmkBNZTyRTyAuw1vEjucexk+J8QI35XJzYdYc1Pq3I+NGP1N/OgKgtOQ+m6gBPdK3R8 hEfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455404; x=1787060204; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=3a2o8hU2NX4G4KDjEtUlg8W2ms8vxwfj3DwVKsft2S4=; b=kZvOEfxPuK/YYQT3nIrCIQiJAtT7QOKtLkgaxppw21RhQf6CThztDGNQXXkuNlPpQb m31ZZhnR0Ab2pWS1RcRbr1KXVogSMgpFXkbYDpmhA7hNnBvJlGsGjcmqwkkfl0JVVFB1 vuRUaCdyPOYsuyNryCHex8yoQ05+vDNI5Ub7DD6R5RyB/KQHEUzKF7IiAb3kBuJSiTsp TjtZ/4XoSZKGF0bmIJvOfY+7Izt+Bf4ugSyppwstBDv27B+kcPG2xJUTU8D0zNhwFs+R i8cH6UItoodTx4sGY/yl7+A9hDetk5MdZ/zzuDLfXsn+05yCj1JRJwaAg01fhBxuL2Iq 8mFQ== X-Forwarded-Encrypted: i=1; AHgh+RpswWkgt4AAqlrv+ZjHRESIs2QmHBtePxOVWqa3X6ONEbrxQe75dB0z5ih3VmfEbAsncT/iPPqzdhljt5I=@vger.kernel.org X-Gm-Message-State: AOJu0Yz49DuScTvXUYsFubHoCJwI5pkJ4JZUiT1BWkM6Vq5OLEFu54lV N/m9NhpjhCV8/ptrHYDss3bj+7Yc0V+8BNAYsJ54vvswa/M6AcNAxlQquvwGSlw91WyDfkmijck 1pkd835IrbZcs3bKDWvT8Hlio7d+VYg70xkKQ1Q3u+9WbOQFTs502ugVqetGybM4j23JWA+RFoJ w= X-Gm-Gg: AR+sD13skCvRHm1i8LOSm0opXWdBqKlY2aaY1pRPWJdpBo54jtMo/PKQWpnILAlPSvk 5mDQNyGZghOOBNxqiEu/GpKeSqq/n2t3fxUIx2HrsuvNGc4qWhpg1t8x452ow4pPymOZz5VQJRE nk71GN9bP1g+VyADbExJKYFBMVXh6ns6eDNX4qKSqJRsv/MRZRWmh2iLO88lpNUYL5wdz8nolHO fEC+nWkjEuzCosxDa0Fi9kA/gXGLCSCX7OPyB6cfYU/vKC7BjJaiL9UGYVy0bs6yFwEYSQT1cu0 sfS++JLe5FvZ1MLVM3e06fQciGBig9mUg9UOBeHfw57OsGwYrZ/Y5xKkwu0I5tgj9LiyXuvML/p oeVJDy8+s8KC+bUPvzW5CZpXFZSZOHkDWkmcTEOTXx4rQn6pk/J+4YupX X-Received: by 2002:a17:903:32c6:b0:2b2:67ca:5ff9 with SMTP id d9443c01a7336-2d3175febe2mr38800155ad.0.1786455403821; Tue, 11 Aug 2026 06:36:43 -0700 (PDT) X-Received: by 2002:a17:903:32c6:b0:2b2:67ca:5ff9 with SMTP id d9443c01a7336-2d3175febe2mr38799355ad.0.1786455403331; Tue, 11 Aug 2026 06:36:43 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.36.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:36:43 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:33 +0800 Subject: [PATCH RFC 04/15] arm_mpam: Add support for memory controller MSC on DT platforms Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-4-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455320; l=3976; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=dBj5JCOxP3rf9d7IdKGScOUu5ViYOzUHU9ubBeXQiVU=; b=UMkZ/PiLK7HaCVXNkKsyMh7zObjnHBSVbUWTXOxX14bK7Nn2MjCEFtKUfu3LjK5epD3f4g0HT Q+SWA++VVfCCaGEd/gnTrimB6Z+uYEb0gU4W2Kr/TJR33ZE3+7ZkBM/ X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-GUID: 3AcSWyo2q_D89h0vU90ctYHB8RMQVH1d X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX9QVkprTteOUu /kl6mbX5tThtdooMymJXf8PMcM/wMr/Sy977gH8/ntj5XaEbSjUTeLVDyODlUiJ3n6krGGvVq1k qQPr8z9KVPIu7dcvV6cZwRqZs9B6hng7MKNZ7Ddn4BTn5wfdL3hUjgI5hNJI1wjGMYGSrUWOWdf /xnC40G5fm8shu5/m3vQkRt91/bbTPzbjFncx3smeripG/DDcWWExYD93d9woYODinLNsIKBVgT On9sLQ+Dbnl8py0suPOOET3K5oAykSTMAe7Ks1wUsZmCKD897LMogXhIW5iSqxTsx/SMgRwDhs3 Jj0ubPksA7Aco8smiErZMQRTEuGkCWXmOaHAQwyIHbTs6lPPnZ3Ye9uoXDx3ofEDYVm0wH8Ww7e nxdavjxL3/CbMVonZuJR3Xb9PlZ7Tu0Kv1Pd/dd+GTiexz3yX9Rrhtezt9YroNH1siZn0n76znO iMoXIURPN1GqFZmYCPA== X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX+1J477zEE+Gk Y2+J/bN2Rjm5IcJUTPAeSkw8aL8LH8vuRMv3pSjsWrKpVBKmRUSfSF6dQklMeUBX6y+DYPNzrbx PLAZnQsUHkVqtonX3/5DD2C1WtTlhZw= X-Proofpoint-ORIG-GUID: 3AcSWyo2q_D89h0vU90ctYHB8RMQVH1d X-Authority-Analysis: v=2.4 cv=brt8wkai c=1 sm=1 tr=0 ts=6a7b256c cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=Ikd4Dj_1AAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=YM9RNYZJZtWq5EK5GGEA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 adultscore=0 clxscore=1011 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 From: Shanker Donthineni The MPAM DT path only handles cache MSCs. Memory-controller MSCs cannot be probed yet. Add support to discover memory-controller MSCs from the device tree: derive the component id from the NUMA node and create a 'memory' class RIS, and treat a memory parent as accessible from all CPUs. Signed-off-by: Shanker Donthineni [ morse: split out of a bigger patch, added affinity piece ] Signed-off-by: James Morse [ Yin Li: fix context offset conflicts caused by line number mismatches ] Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 56 +++++++++++++++++++++++++++++++-------= ---- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 6f2854fe08ca..975ddab771b4 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -263,10 +263,12 @@ static int mpam_dt_parse_resource(struct mpam_msc *ms= c, struct device_node *np, u32 ris_idx) { int err =3D 0; - u32 level =3D 0; - unsigned long cache_id; + u32 class_id =3D 0; + unsigned long component_id =3D 0; struct device *dev =3D &msc->pdev->dev; + enum mpam_class_types type =3D MPAM_CLASS_UNKNOWN; struct device_node *cache __free(device_node) =3D NULL; + struct device_node *memory __free(device_node) =3D NULL; struct device_node *parent __free(device_node) =3D of_get_parent(np); =20 if (of_device_is_compatible(np, "arm,mpam-cache")) { @@ -275,27 +277,48 @@ static int mpam_dt_parse_resource(struct mpam_msc *ms= c, struct device_node *np, dev_err_once(dev, "Failed to read phandle\n"); return -EINVAL; } + type =3D MPAM_CLASS_CACHE; + } else if (of_device_is_compatible(parent, "cache")) { cache =3D parent; + type =3D MPAM_CLASS_CACHE; + } else if (of_device_is_compatible(np, "arm,mpam-memory")) { + memory =3D of_parse_phandle(np, "arm,mpam-device", 0); + if (!memory) { + dev_err_once(dev, "Failed to read phandle\n"); + return -EINVAL; + } + type =3D MPAM_CLASS_MEMORY; + } else if (of_device_is_compatible(np, "arm,mpam-memory-controller-msc"))= { + memory =3D parent; + type =3D MPAM_CLASS_MEMORY; } else { - /* For now, only caches are supported */ - cache =3D NULL; - return err; - } - - err =3D of_property_read_u32(cache, "cache-level", &level); - if (err) { - dev_err_once(dev, "Failed to read cache-level\n"); + /* + * For now, only caches and memory controllers are + * supported. + */ return err; } =20 - cache_id =3D cache_of_calculate_id(cache); - if (cache_id =3D=3D ~0) { - dev_err_once(dev, "Failed to calculate cache-id\n"); - return -ENOENT; + /* Determine the class and component ids, based on type. */ + if (type =3D=3D MPAM_CLASS_CACHE) { + err =3D of_property_read_u32(cache, "cache-level", &class_id); + if (err) { + dev_err_once(dev, "Failed to read cache-level\n"); + return err; + } + component_id =3D cache_of_calculate_id(cache); + if (component_id =3D=3D ~0) { + dev_err_once(dev, "Failed to calculate cache-id\n"); + return -ENOENT; + } + } else if (type =3D=3D MPAM_CLASS_MEMORY) { + err =3D of_node_to_nid(np); + component_id =3D (err =3D=3D NUMA_NO_NODE) ? 0 : err; + class_id =3D MPAM_CLASS_ID_DEFAULT; } =20 - return mpam_ris_create(msc, ris_idx, MPAM_CLASS_CACHE, level, cache_id); + return mpam_ris_create(msc, ris_idx, type, class_id, component_id); } =20 static int mpam_dt_parse_resources(struct mpam_msc *msc, void *ignored) @@ -2163,6 +2186,9 @@ static int update_msc_accessibility(struct mpam_msc *= msc) if (of_device_is_compatible(parent, "cache")) { err =3D get_cpumask_from_cache(parent, &msc->accessibility); + } else if (of_device_is_compatible(parent, "memory")) { + cpumask_copy(&msc->accessibility, cpu_possible_mask); + err =3D 0; } else { err =3D -EINVAL; dev_err_once(dev, "Cannot determine accessibility of MSC.\n"); --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 C00A0430CF4 for ; Tue, 11 Aug 2026 13:36:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455416; cv=none; b=s2n+7PCJHrOn4OdP4tGnHEVJ7kW1vr5LJuvXVnovCDfBjUdM7E0M0hu5PZ3NDtDkN1FGdvOeJsm+49QPLpJr4GlwPD6qC4QOJTiJNSOMhBjHr1Wgkyplf3uk7N4yqQChrOl3Ucq9/1/yHFZMBuizBE2T/rQn35GLx716Woql5PU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455416; c=relaxed/simple; bh=ryf8Hd4nI6jqhAT1OBjk5xfOQnB0C6q+0/GQIGWdgsQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r60QKlbc16XiYbN+cYG/in4BgLwMR+Nxlbz7XA3U2YBCrt0anjDGR5ZJXTgfKrl2ZtmFG9lVrTiEYlPhWEQD0peuRcmYs0XCQdoQHoCbZpVDLYvsOinHRwwUmn12AWPjj33Gz30mI8g2uiJxsfYX5BD9hV6qQmDOca5ekZTTAuI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=cHfArXoe; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eOw9mzBM; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="cHfArXoe"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eOw9mzBM" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWv9i693968 for ; Tue, 11 Aug 2026 13:36:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= PBKZTJRPc4aJNkS3BLkPLws3+8SnD6OJK/D31466cvo=; b=cHfArXoe1G1igSv4 ewt79K0VVekUNzoomiOcEQWrTaeFUqUDcu9SOViG3o0wuhGlrokUYjzOMKOlFBw9 AP6yD5fv/IiyYJ8gHqTz6xs6sHrW8cDklbvVxOnUOfHPtPGDTN5Rji5Y3MjxXCPi Ub+VcM7YtpcgM2CYs4hC1tVOMKcw5dkQ8LJeSFXh1L8cAfHR2xlWEYd2QoPe/MNh lyW1vyRQUpaF6kjyMaeOTGm/58IXboTzVhboURHfH4XOEgiCchwys1UBod/zjKiz nwdsddHtognwOB30uvsWpdNvSL7Mq7Q3VBREFC5xLSkCB98Z8pqKHvPiYBxxWXpy FPycjg== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g049gr640-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:36:50 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2ccb687f82eso48469495ad.3 for ; Tue, 11 Aug 2026 06:36:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455410; x=1787060210; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=PBKZTJRPc4aJNkS3BLkPLws3+8SnD6OJK/D31466cvo=; b=eOw9mzBMx9kJNDkspxHSbExbAnwtaABs1NfVbnlfbq12BHrr+WEpvdh/551enfwu6s +6QlUWhpI2i3UHaMRRSKcSdwJ+VlkrPStTuk7KQGmxFCkBFnkTtWqARTxc/6c2uws4xL mL7hJS+jZpU8rNzbKmiq8l42yRSNEZsQ4hI33K8eqSW815TPad3Ddllr3i0UoP+l0yVt brVROD5NIuCmw3QKzFut5yVt/BzHzKm8cvBvRsgK6xRbnSXF1A4lScrudX1yVhprTC0a FqXagqQEpvIKumnoM9ghtod8Qf1J2U4pUwc8LA275aboBkhK5kVbjocyUNO8mDy9tAft r/sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455410; x=1787060210; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=PBKZTJRPc4aJNkS3BLkPLws3+8SnD6OJK/D31466cvo=; b=bLv6DGIpNJR7rx1WF/FOahWWPad8iFHPN1KkQCVcYBL7GeeH0LIR2tbwFUCa+Ob+j4 NtIlL7s0tQQmbRVap+PjGgj97nx+EJsn8XaylI6mlr4JDoggXY4j05EY5FbITSPfVCz4 TCOAH9E5RewBD11Ph+8RnKyBqip1Vty7OBt9eEZJSDsxg3HrpJABaAyIb+iUdQruZndE 8Zp5mwDAPqhPTLa8a8NQiivuK2yaoPZ8WU9l/VUBGPsvZOEBKqMO4I7JbbGTiSDKmqim zjlkl/ZWJAckK/Pi0DE9hwZFGDHzQnrJzkTRba1sqKByihcWaJkDGK+ZkZmOvgIMbbSK txhg== X-Forwarded-Encrypted: i=1; AHgh+Rol279iOWpo9mejZg49lOwSVe5w4tkBgQBRxo95OWP/K8cIyUmVvNrlKkb9PLx5yIhoS8/K8wNoQ+Oy2No=@vger.kernel.org X-Gm-Message-State: AOJu0YwIPqCrb4SI6W9nN3EjsW02C+U7mI6VJk83UjH4LAe+bBSSI1DI ADQwlDJSurtcAwoqZVgTShnHODOotI1MRitfuwoyXodwRIqxxU30093Jay4vzllMqlRuY1GFqAH WOvXERuejo5YV3r0U0ica9XzkYiNRdAelxNSAe3WSRyRT24rFqGsG68+Q46aFfqmGPME= X-Gm-Gg: AR+sD11lNmC7X1TX1cnlBQaRRNunsc1Z3K1AIEuQA80yYuEQMLvea7ZHb15ySNB3YqZ A4yp6XHyv90QcgVUalyqxcP1BrbneMMYkeTAXib1ki43f+OKRi1e0VpBwqBi8VJqemFMCdLT/x0 1xxW7KZhAWj7JY8+yjrO4Ea05TZdzmly2SdxqJxnQ1lsko4cWC18ouEupFicqV9o0Vp0I3wTp6S laffFeIRJbf7+2qF0l0Q44plhrI/GpaFG+G68GedkGdw+8uBjKRD0N3LjRqs0tJM4c201lG7rmy g4kVEyEOvKQU4pstNQQx9KLrJn1StY9st9auCFHdgErFMwUU3aYDxByuYklqnQmQR4scaaGuaTP joyW6DxCUPqwmrC4VVzVAMAggxk4iPZ3jAPwcp3U/RjWPMycvfQOufqOp X-Received: by 2002:a17:902:ef4d:b0:2ca:62e:cc4f with SMTP id d9443c01a7336-2d3179824f5mr47183735ad.23.1786455409579; Tue, 11 Aug 2026 06:36:49 -0700 (PDT) X-Received: by 2002:a17:902:ef4d:b0:2ca:62e:cc4f with SMTP id d9443c01a7336-2d3179824f5mr47182825ad.23.1786455409155; Tue, 11 Aug 2026 06:36:49 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.36.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:36:48 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:34 +0800 Subject: [PATCH RFC 05/15] arm_mpam: Fix device_node refcount in DT resource parsing Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-5-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455321; l=1766; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=ryf8Hd4nI6jqhAT1OBjk5xfOQnB0C6q+0/GQIGWdgsQ=; b=x5yeS79Rh62eUQVQ3gSGWwDDXvkKDLnAyOGYhwpSc1e05BrHTfEuigvJj8c5TUPwqxk5SQKrp /idl74HvQpZCB0whsc6thSG6yJJVYowhyPJBLVy3zn+p/4Gd93Qx/oe X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX/y9PhjoWQolm fUo/2153hPNo4SgqXXm7GDDxSc47ArDmTvnQQ1wVGdMXKKhjNci5/3qlp9KpXkW9wEwj46Gmn7T iLDLZ04BOilVqsjSknBDyxRDeeAiT6Q= X-Proofpoint-ORIG-GUID: I43QrWPHJQyOMNRjtuaSKP_n_EqptloW X-Proofpoint-GUID: I43QrWPHJQyOMNRjtuaSKP_n_EqptloW X-Authority-Analysis: v=2.4 cv=cvarVV4i c=1 sm=1 tr=0 ts=6a7b2572 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=CToXZ0GCVVG03vgtT4YA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfXxGtkviSF+XWx Va4Kd1e2sEwcg9cGEVztDlIyetzanq+aVWrQIPfz2dDLPNjzk0QQxnqiz9LnWUWjydHK1ly43av 3DJVQvFOgwYYYZHp/05qu6le2l5AgYn70XHdGSHZd1A2quAiMgFPtZW1ZNDTw5Nsd3e4yPFz/Nx wYFcjs0ZBaPg/Jl2GlUlos2CGPQSXb0vo9L2ak2lACT9XuOST1EMIqAj6TQ6EWM8tYRfxUKtD9s /sfzE3b55T45jKZF3c17QoQTS4ppVUi3XnFpJsbRuzlOwE9AnxD3me9IsTJyeXShAjKobDheG4q 6w+CeOeqnI+HPanq4ZfaPmltUxFtK6uIHGcDKpAc5nsCz9AbfUFJjA0ResFbhiSkgJX4Bkya816 TdMiGwIb06JHDoL7yV+TdgaQUwZMOFxGdfsxDmsUHh2YV6VEinwshF8j+K3m0I21yCYj3NiR1Uv KzJ245zaeoqT2agNqgQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 impostorscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 When a cache-parented or memory-controller-parented MSC is probed via device tree, the parent node was assigned directly to a __free(device_node) variable without incrementing its reference count. Both the parent and the cache/memory variable are declared with __free(device_node), which causes the compiler to automatically insert an of_node_put() call for each variable when they go out of scope. Since both variables point to the same node but the reference count was only incremented once by of_get_parent(), the node ends up being released twice, causing a refcount underflow. Use of_node_get() to take an explicit reference so each __free variable holds its own reference. Signed-off-by: Yin Li Reviewed-by: Andre Przywara --- drivers/resctrl/mpam_devices.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 975ddab771b4..559fa09128b4 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -280,7 +280,7 @@ static int mpam_dt_parse_resource(struct mpam_msc *msc,= struct device_node *np, type =3D MPAM_CLASS_CACHE; =20 } else if (of_device_is_compatible(parent, "cache")) { - cache =3D parent; + cache =3D of_node_get(parent); type =3D MPAM_CLASS_CACHE; } else if (of_device_is_compatible(np, "arm,mpam-memory")) { memory =3D of_parse_phandle(np, "arm,mpam-device", 0); @@ -290,7 +290,7 @@ static int mpam_dt_parse_resource(struct mpam_msc *msc,= struct device_node *np, } type =3D MPAM_CLASS_MEMORY; } else if (of_device_is_compatible(np, "arm,mpam-memory-controller-msc"))= { - memory =3D parent; + memory =3D of_node_get(parent); type =3D MPAM_CLASS_MEMORY; } else { /* --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 097D94343E7 for ; Tue, 11 Aug 2026 13:37:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455446; cv=none; b=A2NA/yId5BarAvkJ3gbEgo961mXDksCQtNgl5cm12Iub0FOJCiLlHPD9PWBbXSsaG0/yaGQ34OgwAwdDH4UmyQklKEdGeBXTO642y/t4ALPEMwMoENQwSc5dpGXf/f3XxUOd02Rfh/RMcZBytlZFq4tsnrGnHRkhAlUrjc8bqws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455446; c=relaxed/simple; bh=ymwbh8u44vkobEnUNavx3BKuZvBYr3sz2YSjbnof65Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NYqutovYh+DoO7yPyS5Lcul63nSPg3eO03YU45DTstfSr9D6UXm+T6GoiF1g8vqeb0QkEvFthpHg/SO1Rhm01dwDkqqpxE7aaoFMGp2ZdR2Ab4ijrNe9Q/JzQWYZdDfrHo98HpQ5YonWs2hKptDgrvDW2DsqduTcVxO3uFBR1IM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=iJqiiqhA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SsRrKGsC; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="iJqiiqhA"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SsRrKGsC" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWjBg1090655 for ; Tue, 11 Aug 2026 13:36:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7J2v22m35Gt/8OiuOYM3wU1cSpg6q72MrGm4kNkp73Y=; b=iJqiiqhATarmJOw9 8iOdpfOpCDy4MN9ECNY9xX7cfNVW4PTiSq9fjvjMkAjNjvZXCknyYTo8d0wd0446 uUw88mq8Sie67XW0AVrzls1hq8Ln8pGcizu1PdBXO6oms5x3EXLB6brbWubx0D+O Oadp+fysMKmrgJnE7IK9loaqusH7k8YvpVZVCH7ji86vICnRnCdlcmR0eNJTamL2 YBRIzOALqQGjgcG/krptYPubJ7a4qzcBb8xYlpQlRtLTAzpoqqcfYT+xHr1RuLyW AFDn7RpAswJgHtMshAPS+GGWSTGTN0vh/XFynHu1LI8FMN2+hNxS9uZxyJxkdfLt EWkOfw== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g049er667-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:36:56 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ce7dff6253so9179825ad.1 for ; Tue, 11 Aug 2026 06:36:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455416; x=1787060216; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=7J2v22m35Gt/8OiuOYM3wU1cSpg6q72MrGm4kNkp73Y=; b=SsRrKGsC1b+/vQ00eqcWpIq2tNTfXncFni5eYCsTXbiCI4H5cVMSL4gnkrmLofhEMG hvU5eT5p60r9juUftMRkuukY0xbu8qaDiLZtNd3E33C+9vAehiyot8L/f15kdiLI2/xr fkvwdSyekOLuCQM4njfGNQupsGgp2P21Hgt24+YUMI2Qd55IL9rUj4P6R8w3HfNx7CE+ 5r5ud+Re6P/voWiYivO/ngjcZoTQYVi8cenByX8TcXLbP5HKG3XNa6b4g5UuUmSfVd1A wPxVqftgdcx0G2Aap1wO8zjr58vnJKnITNnR4LgDskHN4ZdK+X1brb1Yh/tR1wuD7+qh A5Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455416; x=1787060216; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7J2v22m35Gt/8OiuOYM3wU1cSpg6q72MrGm4kNkp73Y=; b=YY2MT283q+Pdup2M2w04crdDtx58Ah/21nN7exv8klfACQAbr7fc7/3ruHqgJbnTJh 9zzYDx36EIEDQPXX7EcuCbAADav9+6h7RPMP0AmCIunSR+wUhWgV+S8TXDUWV9kViJWX tOOvN8TGU2SPpKzhKxBVN4CrP86rTBPS9FoK73SZMN4NG6ARZgQYIzpoMp+AJEuG0ux2 ZbacfIWaj7Sh6c3GUmuWbcpidkNv0aiztbGQs/8mXB0paAATwoa0ZRpwP/k6t8mq5ivm CQZhal84JzXU77UCGTWS6o0OpW0J8Lgzzay4LTyyhHP2NQS6BeQcYcg5S+r391uXz7EY Lvjg== X-Forwarded-Encrypted: i=1; AHgh+RoCgvJGaLvvkq7EcxUarheIn0Yv5kVkMp3F9xzUIn/p7yVMh7s7wehQMCevtIVo9uhwsvZrOlZDLXkETZI=@vger.kernel.org X-Gm-Message-State: AOJu0Yx3lFMCDMyyiJUoflxaZLDrpDv2lh9h5PyyF3CvgUOOwZuKOLpE Y9WVNHWe5kb+yiGmYjhhxRo2+VcMyPVPeOYs7amiDuUtGYcZxdAOhEytkAyd1DdHLVCE3wlSi+d 8DjXhTHzGACPYrmIfOY+9WvxK0y/55ymyw/LZwy2NnK+AFBQLX5WFnyT9ZsX9gWR1fkM= X-Gm-Gg: AR+sD11udriltLvoADcHhrtW05PVFB0mMfDlFdzi856P246/ZHqIqar9oJA4eeNZSuM vgnYQhgJiZMTevLK3lgiSrekpgJtjEuMSeRNI4vdGjbhnSU3mtutcV+0DqpRv+JoWzev4rrV4I3 GB7yew0YMyI3o27kowsKr945Ora8QDG6ACyIIX5vbJrbzAemW+t/WDuM48Y8yogJalbWwmhPqyl Wjwz/vaAmj1Ualj3+lWGir4yrmtn8rrWwUSeBz3kV5a+P+sUeFZVnWEZckPKGYLLJRAyEmTog+3 bzzC+MHVgEiWG5xjLLA3tNqN7usUbcNHdtyOE00w0A4zEvqwR8R7SDt0ibX24HBojWMJ9p3QoiM dlfs0KcAMNyPAf5yMQnVuuAmr/X8wXarAAQNG3TJ1F6CiXhxBjiZPSCzJ X-Received: by 2002:a17:903:1988:b0:2cf:af20:4254 with SMTP id d9443c01a7336-2d32da51aeamr2670865ad.10.1786455415633; Tue, 11 Aug 2026 06:36:55 -0700 (PDT) X-Received: by 2002:a17:903:1988:b0:2cf:af20:4254 with SMTP id d9443c01a7336-2d32da51aeamr2669955ad.10.1786455415094; Tue, 11 Aug 2026 06:36:55 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.36.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:36:54 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:35 +0800 Subject: [PATCH RFC 06/15] arm_mpam: Fix cache ID sentinel from ~0UL to U32_MAX to match u32 return type Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-6-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455322; l=5227; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=ymwbh8u44vkobEnUNavx3BKuZvBYr3sz2YSjbnof65Q=; b=+LZYGi8ewx6eKunxSNDZIGYha1pAL9rpkB9MS92MpHT7MW7vvdt4r3E1WySGSvZ08nniNkj07 kKFIGeFJdeyC0cDkG+Zk7KdN6XIXAC564d/70sj0l0u9omQoynZwz1D X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX0V+EEVHt8yAB vE53TKeA8/Rx+2ie1rwImQqjF8pDHRne7yE4vDX9frY6ak7ZMuVBDSiFSwXKYVDWQ7QHQB6I4Dw Mpmv35x2ubnUc+xu3Xh0QMrrQliAIxk= X-Authority-Analysis: v=2.4 cv=DoFmPm/+ c=1 sm=1 tr=0 ts=6a7b2578 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=SLaofbU1Rv5Q4-V7Ds8A:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: XNlTjTWsg6YlXghhktuYNH04ivGRlTKv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX1snZ/ae3Uevu UcENprbznB62QQzaKIcQPSQI0ArSFn2YCQyBs9DyX5cTVQQdkp1ZqIY/orDvcvdtegqFxACoYew fK/lyGF+IlO6Q3WDPzGzOvjamrHXBCEXzdNuLLnCpiR7PcjmoLpccwowhSOjB5pwAgRX0gmnuXr i4bJ5oe/1oNj1jno2nakvPnniPcyPJ4h0EDPqkhMowy+XAsHXMXohZy4DGplEqupWUIx+5KwiBa yg3zFLqizn8zQvxxS/o2eUGecKcZNfoWNFWrui6luLE8UUT7BnqYau+RxXTtRkrS3eIXBaLRMQL MDuRuWN9hVqe5EldT4yilLx1JJWUa66fKCBgFxhm+02pYUnzPOrUUCHU8btL2PPvcXSXdzKFpWI G2qzhD0yRvkO4Gzc2P2CnRfr4A52J7UAQtu1JHoGgsFZ9bQbdWkbEV6Er7s5Cv3x5DuMhtOM/wQ 7Ov9McGkjZEK0TM15cg== X-Proofpoint-GUID: XNlTjTWsg6YlXghhktuYNH04ivGRlTKv X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 priorityscore=1501 phishscore=0 suspectscore=0 clxscore=1015 bulkscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 cache_of_calculate_id() returns u32, but callers stored the result in unsigned long variables and compared against ~0UL. On 64-bit systems, U32_MAX (0xffffffff) assigned to unsigned long becomes 0x00000000ffffffff, which does not equal ~0UL (0xffffffffffffffff), so invalid cache IDs are silently accepted instead of being rejected. Fix by changing all cache ID and component ID variables that receive the return value of cache_of_calculate_id() to u32, and replace all ~0 and ~0UL sentinel comparisons with U32_MAX. Also fix the sentinel values in cache_of_calculate_id() itself for consistency. Signed-off-by: Yin Li --- drivers/base/cacheinfo.c | 6 +++--- drivers/resctrl/mpam_devices.c | 16 ++++++++-------- drivers/resctrl/mpam_internal.h | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/base/cacheinfo.c b/drivers/base/cacheinfo.c index f75e7f64038b..a4e0d1d47e71 100644 --- a/drivers/base/cacheinfo.c +++ b/drivers/base/cacheinfo.c @@ -229,7 +229,7 @@ static bool match_cache_node(struct device_node *cpu, u32 cache_of_calculate_id(struct device_node *cache_node) { struct device_node *cpu; - u32 min_id =3D ~0; + u32 min_id =3D U32_MAX; =20 for_each_of_cpu_node(cpu) { u64 id =3D of_get_cpu_hwid(cpu, 0); @@ -237,7 +237,7 @@ u32 cache_of_calculate_id(struct device_node *cache_nod= e) id =3D arch_compact_of_hwid(id); if (FIELD_GET(GENMASK_ULL(63, 32), id)) { of_node_put(cpu); - return ~0; + return U32_MAX; } =20 if (match_cache_node(cpu, cache_node)) @@ -252,7 +252,7 @@ static void cache_of_set_id(struct cacheinfo *this_leaf, { u32 id =3D cache_of_calculate_id(cache_node); =20 - if (id !=3D ~0) { + if (id !=3D U32_MAX) { this_leaf->id =3D id; this_leaf->attributes |=3D CACHE_ID; } diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 559fa09128b4..ddc15249ec1e 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -166,13 +166,13 @@ static void mpam_free_garbage(void) =20 /* Called recursively to walk the list of caches from a particular CPU */ static void __mpam_get_cpumask_from_cache_id(int cpu, struct device_node *= cache_node, - unsigned long cache_id, + u32 cache_id, u32 cache_level, cpumask_t *affinity) { int err; u32 iter_level; - unsigned long iter_cache_id; + u32 iter_cache_id; struct device_node *iter_node __free(device_node) =3D of_find_next_cache_= node(cache_node); =20 if (!iter_node) @@ -187,7 +187,7 @@ static void __mpam_get_cpumask_from_cache_id(int cpu, s= truct device_node *cache_ * during device_initcall(). Use cache_of_calculate_id(). */ iter_cache_id =3D cache_of_calculate_id(iter_node); - if (iter_cache_id =3D=3D ~0UL) + if (iter_cache_id =3D=3D U32_MAX) return; =20 if (iter_level =3D=3D cache_level && iter_cache_id =3D=3D cache_id) @@ -202,7 +202,7 @@ static void __mpam_get_cpumask_from_cache_id(int cpu, s= truct device_node *cache_ * The cacheinfo structures are only populated when CPUs are online. * This helper walks the device tree to include offline CPUs too. */ -int mpam_get_cpumask_from_cache_id(unsigned long cache_id, u32 cache_level, +int mpam_get_cpumask_from_cache_id(u32 cache_id, u32 cache_level, cpumask_t *affinity) { int cpu; @@ -229,7 +229,7 @@ static int get_cpumask_from_cache(struct device_node *c= ache, { int err; u32 cache_level; - unsigned long cache_id; + u32 cache_id; =20 err =3D of_property_read_u32(cache, "cache-level", &cache_level); if (err) { @@ -238,7 +238,7 @@ static int get_cpumask_from_cache(struct device_node *c= ache, } =20 cache_id =3D cache_of_calculate_id(cache); - if (cache_id =3D=3D ~0UL) { + if (cache_id =3D=3D U32_MAX) { pr_err("Failed to calculate cache-id from cache node\n"); return -ENOENT; } @@ -264,7 +264,7 @@ static int mpam_dt_parse_resource(struct mpam_msc *msc,= struct device_node *np, { int err =3D 0; u32 class_id =3D 0; - unsigned long component_id =3D 0; + u32 component_id =3D 0; struct device *dev =3D &msc->pdev->dev; enum mpam_class_types type =3D MPAM_CLASS_UNKNOWN; struct device_node *cache __free(device_node) =3D NULL; @@ -308,7 +308,7 @@ static int mpam_dt_parse_resource(struct mpam_msc *msc,= struct device_node *np, return err; } component_id =3D cache_of_calculate_id(cache); - if (component_id =3D=3D ~0) { + if (component_id =3D=3D U32_MAX) { dev_err_once(dev, "Failed to calculate cache-id\n"); return -ENOENT; } diff --git a/drivers/resctrl/mpam_internal.h b/drivers/resctrl/mpam_interna= l.h index def0e3a65c23..aa45d00bcd07 100644 --- a/drivers/resctrl/mpam_internal.h +++ b/drivers/resctrl/mpam_internal.h @@ -470,7 +470,7 @@ int mpam_msmon_read(struct mpam_component *comp, struct= mon_cfg *ctx, enum mpam_device_features, u64 *val); void mpam_msmon_reset_mbwu(struct mpam_component *comp, struct mon_cfg *ct= x); =20 -int mpam_get_cpumask_from_cache_id(unsigned long cache_id, u32 cache_level, +int mpam_get_cpumask_from_cache_id(u32 cache_id, u32 cache_level, cpumask_t *affinity); =20 #ifdef CONFIG_RESCTRL_FS --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 CEDEB445AD7 for ; Tue, 11 Aug 2026 13:37:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455435; cv=none; b=JvycDhPo4mEX13szH2VSc7lkzXmm8EmVn98QZAC+2tLOlDtwTK90fDAe+a/YKD4EOkDKDgGurr45nQGHC4F3HMJVD/3QdfPv7t8rRJIGQi+Opml79TBop8s3ZaRGYdlVw4S/+7MIJG2ZZ2xVTwcPmiptQf5gXg0HjkwhEdaivWY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455435; c=relaxed/simple; bh=nk0+lqmwemEwOq/+VNFwqihY6Bh4+dlMQ4KcgiZ0hnE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IR9SkOgGpdDon2tF4EVXHvFjnQQfu08vp3VL/MG6iytJ2XTNC6VH2sZYOvOEmOgX9vFpzwtml3aSFKuiL/oVDRm5/C9CjrgkkYWvBxAexJnU5+btNJNTQxixKBPj+xynBptoDOP0XWn14pHSAF690SGGT5sI+CRyzEsD8y+sK+4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=mCa8nkAa; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iazF/b0A; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="mCa8nkAa"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iazF/b0A" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWigO3718141 for ; Tue, 11 Aug 2026 13:37:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= EjJWRE5UeUGLYrsBjG/4Kbv4uxBHttAzZHuhxxDCelY=; b=mCa8nkAakfH/D80b zyTHpDkqvojSwIXBNnhYZIZI7QdX9dVkgbNXJRUs8vHgsvVN2QROA7gl1btD3r63 hY2bi0XwNCzLDst6zKZRfwsTkTm+ydZZyIawmQ5OVtsXiksAqQkF5Uud7kP6j28W 1ZLCjhZ73hiAYtSQEiU9jOngRZxlxFvwaFbZ0sz4q4z2NgSZtDct4FraF+l43oQ/ OBvorePnQaumb+geYkWDRoaCAvSEUmpH0Nzl1nohK48EnH32MtSxP9L4G9tCejG8 WAiB2+ovwgMHO46gZ81ZXKzV6l5P0xpmeskp2ZIKOiQcq4vRITbR3u3ZnzPxXDye z+gMYQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fyxwesfp0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:37:02 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cacf17c7e0so43538125ad.0 for ; Tue, 11 Aug 2026 06:37:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455422; x=1787060222; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=EjJWRE5UeUGLYrsBjG/4Kbv4uxBHttAzZHuhxxDCelY=; b=iazF/b0AaNXkET+Q2lwft1VRyN16EsYehAeYIyav9+mKw3r8VD60sT7tivmvwalwBu XNNAXjNEY14TWGFOy/a2qompXa3mduR/FWLlomwwA8PMKBtEYxArURqWfniUOitxB1T5 6OBmcNVJuB5uh80VwpAC4VXd9Vr8OyiLpg8NMqW4IQsFiSgdOvchU3XfOG8FECAiyWGk yOLnR4SiB9NRxTVv+qZHoDVR0YketOz73oKDS9B9+Nab+BqXoITH3U+iB49RDEgPh842 yru21AdV1DY9yBIzFg59LVLptMTHAFND3cKsscNaYTHR7MWe4/UbmP43nQ0Tyxd6T3rW 9c2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455422; x=1787060222; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=EjJWRE5UeUGLYrsBjG/4Kbv4uxBHttAzZHuhxxDCelY=; b=DZc1DIQnxb4AB69OhIOxQtAVXaRjdtQd3W0y7SCi7QsAHhM0Hvua1nXT+MbpaqeUm7 s8r2LoxJbPWbQWuuqsuZYVNYm9DSbdQQzW5H5gJMbXbde/bGRurB61eoDR1tKNLhUxY+ 1ykKV/qoF0tp6DERrJfWFfPZbqQUE2eGCvjR0XbFltqmIcXs1b/1IsJ3Cq9mALExt/Xf X1hu0wzAidWK/aHWxdPskNHlh0E7qIBBRP40NVicBHqeFs+XkSn/jnrI+dvFvhunusZp KUTRB/qWdLv/ZtHTq7seOllF2kYX9ALIuTc9vG1BxphDBTr7qhsVmraSNZxIkU3BVj5r hTcA== X-Forwarded-Encrypted: i=1; AHgh+RrYyeTlB0a6wTaj/ST3MrGaPF+GFXWfolFu6DDesFRqo6GyAbngAuRCDd2LukUc4j2u+UHrMq0Ha3DwQX8=@vger.kernel.org X-Gm-Message-State: AOJu0YwYrk7eBvr2D/Epzo5fdGLuaBV0ZuyQRgTS/DJk9w4udHPkLzzg sRSiehb0RdLLCYtlFsUmM16TvLbnQ0pxl7Jezs7k2ybVK8XBHpFURxH5Uzl7vRheHV9rzB7C8Yo gAEhMpKt9AJBlSOgCllpkImcQ35PEQOS2Zf/0vL6vNJnJTHw0380aW1JNoIIsf+JDmrw= X-Gm-Gg: AR+sD13u9CAllybAvaZYgK39vsDHYUJsG/IGRzgQO2aB3hMHLc6OajhzDKxtRknNeEK zNc6qd+2yZZHIKR1UZxDm/58n4fxPtYUuK3xnc7tn9rlt/vMofkMgYmMsi6yz1lb3CKPTUAoj3H yaJEhKqgWHOHeUt54bOOxkary5z/i9MIKU/L2P4QoMy0OoxPJcSWM5pdNbR2mqgq02CTu/86KaG jDPxO19MhCiTBqOk7+LzN+PQ5V1PfGZ3/TKxlE/H+h7wv1ieOBtO5HlbblkRb2lOzbSrWKK9NYZ gs0GPdH/RKtdvmLaqYtTrpNBWeUUnh3psaS2YFnuhrg6TTB0uO1CiDReXfb5bbDrNM4dIRkVXa0 guIktRFpRe4SIvYu3kaVtGxIxe3kKwwea0NQUR1AEeqpBrgksQKmWQdy5 X-Received: by 2002:a17:903:1746:b0:2ca:106c:7122 with SMTP id d9443c01a7336-2d3177b197emr43082295ad.9.1786455421576; Tue, 11 Aug 2026 06:37:01 -0700 (PDT) X-Received: by 2002:a17:903:1746:b0:2ca:106c:7122 with SMTP id d9443c01a7336-2d3177b197emr43081055ad.9.1786455420948; Tue, 11 Aug 2026 06:37:00 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.36.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:37:00 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:36 +0800 Subject: [PATCH RFC 07/15] arm_mpam: Fix the RIS index range check in mpam_ris_create_locked Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-7-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455323; l=929; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=nk0+lqmwemEwOq/+VNFwqihY6Bh4+dlMQ4KcgiZ0hnE=; b=s84p4P01mgVVR1o4H7MeEiKLbGr93oPLw4xXM6u0g3VS553DL2JR22LNajgYTtWXmfoJpDtj5 xOTAS8ZQOGyD7Jsl8Seq3hYMSptmsxxLVB2XtBcIikPS2DCj/3HFOD0 X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-GUID: eFFCUkWyBJswDArHhcLCIB_c9VYC4vdn X-Authority-Analysis: v=2.4 cv=K8QS2SWI c=1 sm=1 tr=0 ts=6a7b257e cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=tscwNbPNHAv0RIyyFlgA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-ORIG-GUID: eFFCUkWyBJswDArHhcLCIB_c9VYC4vdn X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX++PL3RjO6cUG kHEUmfF7J4o4hsYYV4RYhQKYL4Y+7Ys2sFtOI3a8xkoptGqAzCZ28iFT1jG9C1X7tEGvVE/zuCR bR/96jRiP7Ht4D4P40kvJ42RGG4Q1XQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX7tg2Wy+U+b2b Ypfc2s1Xa7BXPtRQoGV5r7ZruNkfGGKend2EqwiutIGsKwHPXXsSQbWXyCWVU6gVy18faLkGFiS 1Ez9YeMLq+egh609e4zN7R7Jvs1G8XKvIR2Bf65saRgEUiLg/Ag5wK0JGrDD4QURiZOJiG0dId4 qsyMOx7l1vAQWud1liWTUotWu4XSJ3IS12yX2PFjp8o03f7vaN2pDyfo96LsqO6N1eiuA9gdpaz bmtVJAL4nhT6I6+vpEDLRFJjSoslw1JaxAehpeJUqzOFTQwuOibqwIo7aB6vTIB+WqLZNpH+Vpr u9jJewGR1er9ZRVvc08DXPUD5/BuArRA8gjjxu32ZcZKuKxkEUFuFHbBvumqVLqqM3i0J7+hli2 ae1uMZR7MoUhL/TiN6vxZs53vBY5FFqD4uHVZ3esTS3LdA30oe0FnbCEXNS+Ax7FZ2qIF82i/zH K2kLYgqeeX2yJ5fwk3Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 spamscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 phishscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 The RIS selector field is defined as MPAMCFG_PART_SEL_RIS (bits 27:24), which is 4 bits wide and gives valid indices 0..15. MPAM_MSC_MAX_NUM_RIS is defined as 16, so the check should use >=3D to reject index 16 and above. The previous > check incorrectly accepted index 16 as valid. Signed-off-by: Yin Li Reviewed-by: Andre Przywara --- drivers/resctrl/mpam_devices.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index ddc15249ec1e..cc9fa1d78925 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -725,7 +725,7 @@ static int mpam_ris_create_locked(struct mpam_msc *msc,= u8 ris_idx, =20 lockdep_assert_held(&mpam_list_lock); =20 - if (ris_idx > MPAM_MSC_MAX_NUM_RIS) + if (ris_idx >=3D MPAM_MSC_MAX_NUM_RIS) return -EINVAL; =20 if (test_and_set_bit(ris_idx, &msc->ris_idxs)) --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 713FD449987 for ; Tue, 11 Aug 2026 13:37:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455435; cv=none; b=ZKFmkWWb6vf3quXFE2u+K4w/VHesa3glsTh0gU7rFz41Roxyuy1GFHqHGkbp/JsVRbr2aIUrJ4QFvLCsXoxkD+0eczf1tZMBc8yszFoPTOLm7d7BnqJAqeyslOrO6PcbdT9Q2rQ3ImJFjOMA8/vWDwPka7Hc453l09sjHUvz3Pk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455435; c=relaxed/simple; bh=xEGu9ankifD+51CN5DkNsTxhHVikQCAqtYX1v27lJqY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A1+6W6uMHvLm9JCAsQW8Nihabl6Q9My03GWEUZT0Q1HD7rvTQUb1x+Rn6jOMoAonQ9YCbH1ss6icyYiwvICezVZ0hn3RdUCW4WJkQ9bBGsql6ZuINb7w88tRQr9E8L/9tfR03SFH4pdEEVutRN5FLq4+gEg8ZmCZCbWJwgHMABY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=PXs+g/RR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XzG6NOgU; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="PXs+g/RR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XzG6NOgU" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDX5XN767022 for ; Tue, 11 Aug 2026 13:37:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Sh9i3yxZfV+elO+BP0wn88wpFBVoPnDZd+GVxPIDGSM=; b=PXs+g/RRULrKwZZG d7ZgXDcF0l3iHt+d7EDni4L/e/2JpumneCwNj0TMJBdWWEi5BN/oKMVyPGrXrE9X a5tp/fP3+ZEG7AN5cq0zkwU9lgR4bH4SnC+9NY9UR8n0twe1O1cffPdLL4EqyRWA 3boEBTxgLnUcUVMJYChdnftmVtWOErOyrMRVtMliAhfdYB9fACjJ+mAFQx5Qvg4G ydnmRmCwuV5m9KNd/b+Z7fSrSZ0s8AH9iyNS6BEAqBJqsrA93ENF9+JLeYuQReBD WcCCOh+KZjmRmbWu468XaB4Xxtzf36cZDSAHSRpo0Aw9WaPU0Eve7MKTGxgAIDdl wkCuZQ== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g01nc0r6g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:37:08 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2cfe48ca1efso37153725ad.0 for ; Tue, 11 Aug 2026 06:37:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455427; x=1787060227; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Sh9i3yxZfV+elO+BP0wn88wpFBVoPnDZd+GVxPIDGSM=; b=XzG6NOgUB4rnekb+SCDmXhcfy7NZEjUFiht5c8mL011UnN9gdK9/hiyi6UXSLXXdLs QQSCYtNNZDOC542AY4zKAm4Oae3lRkd+EQzf52Xzx42hcrNWu9VoKqbcS4yfQ6JPfxHv jb9E25URzvDJ4QsA00LfvQ7eCoQ8/+XODuYWmjzUwEUT+bRTREuCGsWfuv4oudGcGfCu zSrvVIucCSWOvLWWaJ+icKYwXRUQM3MWeDx0YZFpECAQHLP20UcX20dOozI/cFpCeiyF SxL+LN+kexx1oOKg6vc9Oq46OqMDvN8lfm2VhPYm/y7TBg9JYVp8EeowptSXj1o98HV2 rW6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455427; x=1787060227; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Sh9i3yxZfV+elO+BP0wn88wpFBVoPnDZd+GVxPIDGSM=; b=p8BtZzImuQPpT5Or0WBdIp6xwXH5gdRg9pKwF5E4InxehDnOFK0IDrrCPnRsWn5g/c jtB5hX9uqqmihhmFdbAm6o3QOBfnFgLiSBk4vh4wB+u8VAjkBJIGPmSdFPQiygG7301s cFPA6m6k+wAY2anSkzKVoe1pUjef5tPry5Cl1A/k3cx5v+6KFdROw+ZOnnMsIa958hRx DRyAIEja2p4z6LI6zIyIQbQGbT9/fl6J0DaEcwRpvryB1F5NhOVeLYcr/Wi1FC2vyirj KSjedH2mobeGQeS+hFZaXmw3fPIA/fWjuuaziC+FrhAdaOeJyGY+Nj7bpXzLewFn6tsD xuWA== X-Forwarded-Encrypted: i=1; AHgh+RpfLPvj9JYIPExSn8r1HPNotXnPrk86ocWWQ98JBu0NP7Mc09mk9RzK1idi05iAO8CnUxxb9v0YoG9p61Y=@vger.kernel.org X-Gm-Message-State: AOJu0YxCaKJjalhNGzxJQs3qoPDlpGhykSag2ALQjRtnp1+6JQu8hAuG 4b3AiCKqeBUZuCqB+++iV6JJJT3Ady8cXZW9qoCbBbjGtT5yS5MXv1TPb5UBlOCMLPZVxT7rsQE 3EfJANf0XKdFvWZAvLs6E/Us+YRFAcepeBDK4z6HffF7L3o/25pmOAb5hxWIcADw/2lQ= X-Gm-Gg: AR+sD11tRm4F4mriruBiWZDGCrcH/AyUiCyVL5TtwXx1pD6LR1qSJrmj1ZHDf8jPUCl 6fZ+qa9NN8fyLtdMN9KwABYFmBbaeHmgvIMVD1HWPk8+PKA3Kk+Nxn11UH13cqi+H+hGV1L8FZx yBlRoZ/97CSSbq5E/J1bfb0zEjhPCQyTkA3QB1BEd/Q9z+NUgKvj2ilFW62/ZGLrL2OXoWdgtcl HNLMGHVsW+nK5u+V2lde/ZduoUvzHLLNYyaEPnoGeLRx6KEWb9zmES921+rPPHihpnlU5df+The 3P8HdwPsytZP8ZksBPH55LMVoegOLN59v9yl2Ja09AN1DdKZDdRwodGVEfP3dxEXd57wfRbE96P 2plBBEMgo4s2wwrM2/s8cVXsrHbyd8o4Xka9g9UTW165s8YxkIVfUHYsT X-Received: by 2002:a17:902:d488:b0:2d1:1a18:4d0a with SMTP id d9443c01a7336-2d3177a2163mr36651025ad.9.1786455427469; Tue, 11 Aug 2026 06:37:07 -0700 (PDT) X-Received: by 2002:a17:902:d488:b0:2d1:1a18:4d0a with SMTP id d9443c01a7336-2d3177a2163mr36649955ad.9.1786455426911; Tue, 11 Aug 2026 06:37:06 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.37.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:37:06 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:37 +0800 Subject: [PATCH RFC 08/15] arm_mpam: Fix ris_idx type to prevent range check bypass on truncation Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-8-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455324; l=2590; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=xEGu9ankifD+51CN5DkNsTxhHVikQCAqtYX1v27lJqY=; b=nLawrdlW8eg7uzFaMNdvW5wUFGrxG1csc7DJAkmCcYWAALdt1xSxw8ndGkGreUQ6JwQGXjnFV FMqi1xwnc4hCwd91Lul5ZOg48Ruv5gC/Vsbf+ko/OYehp0AqtDClXhP X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX/2NnbJw5zS0z CL7BRsWerC1sU7VRAL4QPVe9pnSRIJF+Ap+Vpv3m0klZ0GY7JrGfUhX8eoe6IH0r4RFRxvif9j3 rodhnUChjNcxopJK6IToGHOwvjrqOm8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX7TwOnQYN9yOd 4Q/nq41x8NCRnkHSUJqE7cvIYRyyrhq2YHNuKAbIpuIeWHV0/ZAljcYjmnai3TF1WwFKdAaGTeV 26mOPvPae/EWK0A+vgNataG/Fmif5c7dMNafQg3E/CknfuoO/pda6nJQV/HXo7MZEj1h4w738gq HqxSiu+Uu6gRjfEWzKB5ruP8tJx4gI9sCbApkz/xQFiEaF6JXZDazHXq6zYpQt4hKRxKLHVBMqs 4gxUfIGPCmoFA5obWEMKs8201izpGW1ZXmqlILndsb1VWR2AEwmOSsFM4BiZREmlwftI2XOXq9i 7y72q/uyU1ecn6TnORXesEMBXy//czE9NhghgzMM1xeV9TZVMqOD+vnGhYsiJdEASZ69MKxBIRn nI9cK98gKHq627mLK1HjtEegkwYWximAV1bBU4umwf39llMFo598dYbpfiMInYmkZ/HHPmTewsF RVcXptpkrK1cHX11zzw== X-Authority-Analysis: v=2.4 cv=RY6gzVtv c=1 sm=1 tr=0 ts=6a7b2584 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=6Dh_s6ggWNQJvp08L6kA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: lNqsPvh0KUZ7MkxHYfROYeJs5qqh-65p X-Proofpoint-GUID: lNqsPvh0KUZ7MkxHYfROYeJs5qqh-65p X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 adultscore=0 suspectscore=0 spamscore=0 malwarescore=0 clxscore=1011 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 The RIS index is read from device tree as u64 via of_property_read_reg(), but was narrowed to u32 when passed to mpam_dt_parse_resource() and further to u8 when passed to mpam_ris_create(). A value exceeding MPAM_MSC_MAX_NUM_RIS could be silently truncated to a small index that passes the range check in mpam_ris_create_locked(), leading to incorrect RIS creation. Widen the ris_idx parameter through mpam_dt_parse_resource(), mpam_ris_create_locked(), and mpam_ris_create() to u64 so the value is preserved until the range check in mpam_ris_create_locked() rejects out-of-range indices. Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 6 +++--- include/linux/arm_mpam.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index cc9fa1d78925..1e082fb60e30 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -260,7 +260,7 @@ static int mpam_dt_count_msc(void) } =20 static int mpam_dt_parse_resource(struct mpam_msc *msc, struct device_node= *np, - u32 ris_idx) + u64 ris_idx) { int err =3D 0; u32 class_id =3D 0; @@ -712,7 +712,7 @@ static int mpam_ris_get_affinity(struct mpam_msc *msc, = cpumask_t *affinity, return 0; } =20 -static int mpam_ris_create_locked(struct mpam_msc *msc, u8 ris_idx, +static int mpam_ris_create_locked(struct mpam_msc *msc, u64 ris_idx, enum mpam_class_types type, u8 class_id, int component_id) { @@ -799,7 +799,7 @@ static void mpam_ris_destroy(struct mpam_msc_ris *ris) mpam_vmsc_destroy(vmsc); } =20 -int mpam_ris_create(struct mpam_msc *msc, u8 ris_idx, +int mpam_ris_create(struct mpam_msc *msc, u64 ris_idx, enum mpam_class_types type, u8 class_id, int component_id) { int err; diff --git a/include/linux/arm_mpam.h b/include/linux/arm_mpam.h index f92a36187a52..30461cd71199 100644 --- a/include/linux/arm_mpam.h +++ b/include/linux/arm_mpam.h @@ -39,10 +39,10 @@ static inline int acpi_mpam_count_msc(void) { return -E= INVAL; } #endif =20 #ifdef CONFIG_ARM64_MPAM_DRIVER -int mpam_ris_create(struct mpam_msc *msc, u8 ris_idx, +int mpam_ris_create(struct mpam_msc *msc, u64 ris_idx, enum mpam_class_types type, u8 class_id, int component_id); #else -static inline int mpam_ris_create(struct mpam_msc *msc, u8 ris_idx, +static inline int mpam_ris_create(struct mpam_msc *msc, u64 ris_idx, enum mpam_class_types type, u8 class_id, int component_id) { --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 46C9344AB73 for ; Tue, 11 Aug 2026 13:37:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455454; cv=none; b=myjoDDQaGWyLh2851Y8tqoUGKFYVhUnyZELxThPQafJ7tQ2Rb7+Fp2qc7aHNjES2JhOezU2PvCShYRPUIy3C/0wqr5gQn8pZ98UqI1DuFoPXpIlUfrwc5rbaS3rrW6qkETjxGAKqIwNm++Yr8t9ZZcd+TWODx9X4PHvyAo1WaJo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455454; c=relaxed/simple; bh=p2xjgmS67aR70B9SMa1nHtDjkQErJq6ajoUB49gceaw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DGxgknhSNe+NWzqp8i7/aX97wEFIBu2b0Zb5dBLI5ZtUI0VTA+rSPuv7COwOLAbYHvvvK9EoeYSmTVqQH6FefYw+zobD5ECsKV00REfydbebsj8gLFhjL++Hw6c/OY/niLfnwde0mO9vXYjktVE3mpRpxWohjurRrwXzBdH5ybA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=KygOzCr/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BJI4RGhi; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="KygOzCr/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BJI4RGhi" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDX0PK767097 for ; Tue, 11 Aug 2026 13:37:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= vwHxw3zAEaI1XPdj+Nn6C5Vg8bm2U0OZGPmMASab6wI=; b=KygOzCr/BtJZeUGu wSFu7q+4DUyfg4jUUY6eqKj8NzC6OS23mMWMVZGpnhcN/WcNMoahTpwFv1dYrtz0 jA3PpEi0GfBtNxt5IAfj7bnLp7I6/Qog9wbXY2GdaLhPSE5Wf7JCAd/XVTn7ee0+ jUxDoJpZt1c6cHOUd7DzdPTrDAMMVZWl9UqSZUspIWo3oeqHZCrKEZ6NXHIc5opH rANkdac3qePhFrEeJ6jJBxjGd0ZZH7DNMnizkXm04ouX1XZ/qSUOlWgqlcb8u/Mw 6ju0hhPgA3bHWEz8bgHKv6bfESvWGuEJmUmx0W9mPJjyw7oleAwN7oAsZQ9BpL6B OZI/Sg== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g01q10q8m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:37:14 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cfa55c9430so29982245ad.0 for ; Tue, 11 Aug 2026 06:37:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455433; x=1787060233; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=vwHxw3zAEaI1XPdj+Nn6C5Vg8bm2U0OZGPmMASab6wI=; b=BJI4RGhi8tZeHte3DBfmUQXWwVw3oSFcUzbw/JKQaFBnIjPITirdzrrWgOjwgDUOrS /WRH/jUbEHi8JQ6KQsmEf/eufPo6zvklNKXC/oU8PLlWHyiA8q55IExxpb/4e5gWIfbP mL2WagbUVMvVWn+hKHDwAI9wof4piUkNyS+bAPfsCmzBTw3V6i3PFohLC2ff9Srq8byC GpVb6dzGWEviQblS4xRgPKmgJ7qPYZFoPAnMtntLat9fYgUfzDbQ5kbYSWFzCe8MkxE/ TlbjHob02776ibhIPq2skz7xdns0910YHBvTEsQTlPwW54VnPeVy5remOPM2TMFD+BNy u49g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455433; x=1787060233; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=vwHxw3zAEaI1XPdj+Nn6C5Vg8bm2U0OZGPmMASab6wI=; b=H07CSAt8pdBzt8mAvn+hrQdFKy+UtGDxsmUxWOjsGcKRwPtO+h1qtFmgG8h3zkdSu8 S46auh45pGr5EDc6Ty6R6Y7qaFh5pnwcIi27xXugyFd5RUKCoa+3FQ27W+/s1iq6Shun s3JhsnmgDaWxoZvzU0onFbbtQfdfOoosUgX8zwLwvMsYWJAvY1BHExMXZfhlHaXzGmmb TmK+MOCKgnqnGideKEfX9ez310YFcMECEeIBGlF27ozjsbvXAcDdpVzwFJ8r5L3JDxWt H8kiBezG4QRLYD/vNbF80cEmS5g4S25iBPMbACEo0Hwvuc+KMBNS3Z2vwCqCeGORVWkk lLmg== X-Forwarded-Encrypted: i=1; AHgh+RoV7xxQRoLx3Ph3LXdze61KK4PMVhA1DJjv0j/GmXK5Go5gtSpXkToe2UlCnNEgzTVOsXE96yCobnK3Jwg=@vger.kernel.org X-Gm-Message-State: AOJu0YxWDkkvs2ed+8OUs8pt0d6/vtx9uMFjpCPw/xm9UKVpwdhzkW5u BLcsDchdfYjdiT536ksi5FyCULyI7Grvk9KO5Rbm0WRNxao23yPhtxdqDDJCikPbNQE+gpPRlP6 VUiILEN+FlwxsCFWC1IlY3Y9K+wrseSD2tXFPjr5E+XIC0Xw/Sdm5znOP6BVRRf3cBH0= X-Gm-Gg: AR+sD1063lFbfsjINmVJ4X3JYsLtN4Hw7/vL/PxSy8ZCTdtVPKD7feqYZ5SQsFE9ILm VMOk8m0e2+1ar9U5Sxi/k8S1iUhS1yRzhQ8Y/0XH+A9tLSNBxs6Ksb1rVJDNsLEZTWrxAKkd0Lm LXUuY8+IO8zJKrA9LF4XCTKToyAZTGN5cUKzTwpqLqPF6HRL3tNE2BiKKNrZjzlH25aVgxmyy6M ASie8u/1+ydJ03qdhNNQYFew4J1wTNab9d+A28zRHQvUz66e2yER4IoE8yrTjBnuGJwHWd83Kua JPReQoSMA57nHRluPH/Ngfpd6of+5zWjokyQ+nNrd3deXqYoB41//k4SSfdFEDr5YS1EGDD8f54 aGTy96iNhMwL7WRXo+IFmv/0aM5/EdiWYHAvNde7qJruKnHZIh6/otanr X-Received: by 2002:a17:903:1a90:b0:2cf:9344:b80c with SMTP id d9443c01a7336-2d31792ccf2mr43115765ad.18.1786455433213; Tue, 11 Aug 2026 06:37:13 -0700 (PDT) X-Received: by 2002:a17:903:1a90:b0:2cf:9344:b80c with SMTP id d9443c01a7336-2d31792ccf2mr43114925ad.18.1786455432749; Tue, 11 Aug 2026 06:37:12 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.37.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:37:12 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:38 +0800 Subject: [PATCH RFC 09/15] arm_mpam: Fix MSC MMIO window size to use resource_size() instead of end - start Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-9-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455325; l=1009; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=p2xjgmS67aR70B9SMa1nHtDjkQErJq6ajoUB49gceaw=; b=RbpW8XOlEMkCJtmVCURN6evSB7XOf+fGyu9WxRbuW2WabuhISd5aQCYdTcyYhgx04KovWyOF2 hjTScrHcKQHCxWZjooCfOcNcPKW3FbWym9PgHmj+SSH96eJqNobrgJm X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-GUID: 8OFqY3I2cuNib_e3Z64OFLLjaiZz6_3a X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX1ND8HaGv5ceF UduA3S4+rvJnHPvCE77UYJVdV+GWVUPzzkxHsvs82uTdmEYA+Fi/3wx+AzhxZgQR0CKTh9PwJ1f b46ylf2qTQlu+RQ/QaGNLZop5KJr8PEQ7eoBNoFuk8ydcf4HdQb58VPmXN6Xn8+UQem3QUnXjH0 H31MHGUEN2trP7reZydR+Qnbjvojvz8Oy1Yyuln7A7E9Vy+TCRZDnatoTD0PXcttrWBl7uCPPRT aHGlx5NJo02Kwt3Ayn/6x4AwhQEaXuM5MZttQLAkwYTipeMf5WJjPHiYlimC07Tx10DcOvbkuuW 3/bknToTekpIRIESkbIUl15SNUqRq/Sz17zCmSor9LtBeA/PVhAkTLy9p0XMpY7uDH3i4Q+sL/z Exz+eLP2v3nGdlPnzBGHs2CROezpYwMZOLOdkGsPBcf/w+jrRvdnF0McDOVNeZTcX4X45+zo6xY ptFp2T8qrR5cXfCLlew== X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX7/oxYtMu0jkK ldjFaFJJPI2KN9B2UgCQJZvYEF72j6D5P02ri+c5iLc5hYj/iT1vMiYoN/QfdmFGjCKfqUu3D5u s6QmPMcNJMEqb3pkMy69HMP9fTVYp+w= X-Proofpoint-ORIG-GUID: 8OFqY3I2cuNib_e3Z64OFLLjaiZz6_3a X-Authority-Analysis: v=2.4 cv=brt8wkai c=1 sm=1 tr=0 ts=6a7b258a cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=3CEkA7f0bXxS4P8v5VkA:9 a=+jEqtf1s3R9VXZ0wqowq2kgwd+I=:19 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 adultscore=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 struct resource uses an inclusive end address, so the correct size is end - start + 1. The previous calculation of end - start was off by one, resulting in a mapped window one byte smaller than the actual resource. Use resource_size() which correctly computes end - start + 1. Signed-off-by: Yin Li Reported-by: kernel test robot Reviewed-by: Andre Przywara Reviewed-by: Ben Horgan --- drivers/resctrl/mpam_devices.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 1e082fb60e30..5d1854d97371 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -2296,7 +2296,7 @@ static struct mpam_msc *do_mpam_msc_drv_probe(struct = platform_device *pdev) dev_err_once(dev, "Failed to map MSC base address\n"); return ERR_CAST(io); } - msc->mapped_hwpage_sz =3D msc_res->end - msc_res->start; + msc->mapped_hwpage_sz =3D resource_size(msc_res); msc->mapped_hwpage =3D io; } else { return ERR_PTR(-EINVAL); --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 AE27D3BB106 for ; Tue, 11 Aug 2026 13:37:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455458; cv=none; b=cWtpogJ9X1qPx3ELT0n3LCy8KHM8JgNBF1KVbpFhUu1x1JbGFsiiskXfIOusu5xdt21Ui/pXr5ek61F9+IPPihvoPgfgAiYeYM6/TTqcC2iAUel4lQs5P9uwEQTrfA3ddnOyhk5nbS0BZvHh8hDK2kirK37C468yGhiqS2oxtFg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455458; c=relaxed/simple; bh=265Vl+KGGKJlE7e4ia8GTvvieO9JWlqLF0WeOn45tbc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aAbNyohYm6yzIOtBL8O2IUyKnC1oEgKUgYmd3FpfIFUr+WTjStMmmejCX6tY52GKtLqV/FFbJkJhYkEtItTa2ESLeMWC08mjCAmyyyAeIIeo1Vs5uyp+CZLiC9NGD0fe2viafs58otpN3kPPbEOt+RqQ943IWSk6caCHEwzjBQA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=SoK02wEB; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=f75+G3FK; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="SoK02wEB"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="f75+G3FK" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWuEk766887 for ; Tue, 11 Aug 2026 13:37:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= FgXs96hhW9Ki7SDANwXO5TQ2I7iFcKSC+Ga62QuGtLo=; b=SoK02wEB9yOl4Uvc PUfHj2hxwTjwcBMizOpLdDnD3ySXVEyvEXAGvRM1wpx70/oc2IJju7hbGdCG9wwF LbKuUpfppX5yHuHsbNTCH6LfdVXxWBS8s15eM00ddqZx4zOXwBfItBodVU9TeoHJ jXJU4vzphURwxfc5/UkA3aRrh+QZGQeFiy99j21MF5aW6YhUJR3P4dXgK+/sl7M7 oP3Vi6qxoUYhKp1B5FS3RbzAQvSTUPw62fZg7C5IeScOOP6XkgblC+MImJ4sYPNq gqjxqKl1EvJslhb5sSibeu1Jef3MgHu2/s4X+knaS2tYC9vVJz22wZpcHBWQoOeP y+xJIw== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g01q10q92-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:37:20 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2cca5e0a0c9so66314805ad.1 for ; Tue, 11 Aug 2026 06:37:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455439; x=1787060239; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=FgXs96hhW9Ki7SDANwXO5TQ2I7iFcKSC+Ga62QuGtLo=; b=f75+G3FKp/M+xdnklKiwv/crjcVC1Ifnaa2ZFf4NBgeoRcr2/APeBP1EK8x/kYJzKZ AiARPR1KHbYN4B8TahBQDJAhVNW7x4B5om1hkWTY3Bk53Nm/NR7MnnsOcUs0ATsJLlct qlEakjhcCdQU3Z5cQjhj9+sz16TU0hqCDGf6se+ptDQ72OSItfjU0TkuPLKs0XS1bm1Y P71cL3dd+xWmEl5GeNYeyANo8eM12PsKnBXifPkUPVL90aimmTUz7VZtL+b8m8hTyP+i qKRJAlIMKes49A2reIoh45Z3ckpZdiO7PPSyuiByB54omZqPSFrjxcDgUzi8x3YlSkaB 1c7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455439; x=1787060239; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=FgXs96hhW9Ki7SDANwXO5TQ2I7iFcKSC+Ga62QuGtLo=; b=aZTaGG+Wk473/5ptnZLxcm8j5s/6GB9wZwf8Ep8L/uXSYskkjrMJu+niEMGF9hVRnh OVx5G9Osj1o/w6/ThGi8sBPwycRXZIAtbAqru78NKJjzrpipNpzv25+lsPUSiE0OzShQ jkRuJ9hX4inkcCnvccYw5aoJTQXzmqIXSBDbBY85MReVptLBXAS2FiUVwR2XB+zvUemZ SDseNBxIaFXIQyNvtjRSvrw4ZG7Qn+3tZa29f+f0KezPPnNvE0oDsUYwUoRCyukoITwM q4rTMnep7YIkbTfK20I/slX5MTP3PS/EEuodVZo423EWKuODx2UBt4Q/rljxc1c+Vy/x e3yg== X-Forwarded-Encrypted: i=1; AHgh+RrIkUzqpbnyrVKeq1FVF9zCpnPM9uMHtqKHr+PBybfJ1aRwVT16gO1wCOu+CzjWzEh4OwwSvnZTkGPxWSw=@vger.kernel.org X-Gm-Message-State: AOJu0YyT6H6kYd+0OPvXGyZXOeAYw8QvCI2cEf/nmjpASJjf8F9YXM93 bHDEk0NKVPzwBCS8dNwzRSQzNuV1hr9vho/k8dRVVLC4EpBkfiJ00AIBZOQ1H8i4UiZui2YXZn2 Gn7i1kOzNFR9gvso8lqaK1vLcwSfhdWaeJ3WCBRhsBhDolDmglEdvhbdvQF2jXHb66Qg= X-Gm-Gg: AR+sD10xCj+O1qQjI4V6cl8RBKIPVLCsBRPlinDBx8AwdVuyg8dCXJTJMCs+eG24a7q 5bNz1vHX0AMZhrPUkOtDHfAMGJU1HCypqxYzKGLZgQq6lbt7pZU+UOTFhLGXcsBjXypUHxC7Al7 MSk2URkHni9Ds5CIqND1T9aEUcOfWBZtk1Y74qdCHZvx2/BVEjj8c6UaX1ABUihHMvsdTCqozJp dlkET5fyAlRennvCtPF9WILht4w9+gQVFnFHnd07EKq/VH5pxtcVCyJRo4aLpXW9DwAkMUlEBfG 4/+sEITyCeFL1kXAXOPwUVt7w7oAASEBRIr/U+TmPynyAkPyAvdHegoc/eVZLo/NQStD9uN1DPh Dl1CMtPFBn5URabEMhPx1iP6yxl73u/h1T18L2orQ6ACK6ehyGWRPLMv2 X-Received: by 2002:a17:902:e746:b0:2ce:faa6:7cbb with SMTP id d9443c01a7336-2d317760990mr38736735ad.4.1786455439088; Tue, 11 Aug 2026 06:37:19 -0700 (PDT) X-Received: by 2002:a17:902:e746:b0:2ce:faa6:7cbb with SMTP id d9443c01a7336-2d317760990mr38735925ad.4.1786455438579; Tue, 11 Aug 2026 06:37:18 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:37:18 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:39 +0800 Subject: [PATCH RFC 10/15] arm_mpam: Fix update_msc_accessibility() return type to void Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-10-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455326; l=2343; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=265Vl+KGGKJlE7e4ia8GTvvieO9JWlqLF0WeOn45tbc=; b=djr9aNve5wpKqWWshU5FALHWaFXPyeUA2cp7+NxrGv2Cg1uOxFVJpeb42e/p6hf0sLykNWP/H SkK7iTfzlKiCYQyIyqto4bOcBPKWGLZQy5QZEZH4A01P2XCbmeyACG8 X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-GUID: jZX0TQgDB8p5jCdZ9TuB9jjUL9Fu7Dsw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX6UdLrrfpVlnX 5L7JiLImRE+oMlT84Agn7H17ta2nc1Jq4Uc1FBibxkgBhw/xB5QTwBH+SPHS44zqMoUvqSo2sex oIFyv83JrgvxU4SXlnFtVEWqB6yCPRiMw3vNMtAByIg+qY+5afWDm9GaCIxgKw/mcsnoPxicrb4 bCvs2DjroV17qJXhSnETgoto4hRCF741573Oeoz5dW9r6CBfqdRlIeBKpfLjrhaKf3Q7XLdULcO yDYK2RFQrmeBNRBs0U0EidlGDiZ8pTTe9OCIRjnbj6UzuSJjKNLNkXAsEypUysfceJ0z308okvG ue2FJZ0T5dqgSC+PkMEOVNzqiGKHIlCZVSnCOa5LlsDPzo+IZ1Sl86v4cf4Slo0chBNkqgjBocD NRfHnej8aQf8aOmAZdQSiHAyfxXjZKYpb/QMgCUavGKIADrloflkD0DH8+Y4BU/+XgxB9TzQpcw +ZV53ooiRqp/+CPW2yA== X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX2tTDUpZH3F/u aHil7lR2F1NWVval6tGqoF9JlEZtTm8WWfCYyiGOWqO9UtPmVdrp5Z6MutKJA7+hfZlQ2DPnHHO fDtEUtKcLi40kJclZCFSCKjj5sGEiF0= X-Proofpoint-ORIG-GUID: jZX0TQgDB8p5jCdZ9TuB9jjUL9Fu7Dsw X-Authority-Analysis: v=2.4 cv=brt8wkai c=1 sm=1 tr=0 ts=6a7b2590 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=WfV1sUHbO1VEJ8_JC0EA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 adultscore=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 The function update_msc_accessibility() was changed to return int in the DT support patch to propagate errors from the DT accessibility derivation path. However, the function silently ignores errors from get_cpumask_from_cache() and does not propagate them to the caller. Revert the return type to void and remove the unused error variable, keeping the dev_err_once() diagnostic for unrecognised parent nodes. The caller checks cpumask_empty() after the call to detect failure. Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 5d1854d97371..b0e67c8349c7 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -2158,7 +2158,7 @@ static int mpam_msc_setup_error_irq(struct mpam_msc *= msc) * corresponding cache may also be powered off. By making accesses from * one of those CPUs, we ensure we don't access a cache that's powered off. */ -static int update_msc_accessibility(struct mpam_msc *msc) +static void update_msc_accessibility(struct mpam_msc *msc) { struct device *dev =3D &msc->pdev->dev; struct device_node *parent; @@ -2174,29 +2174,22 @@ static int update_msc_accessibility(struct mpam_msc= *msc) acpi_pptt_get_cpus_from_container(affinity_id, &msc->accessibility); =20 - return 0; + return; } =20 /* Where an MSC can be accessed from depends on the path to of_node. */ parent =3D of_get_parent(msc->pdev->dev.of_node); if (parent =3D=3D of_root) { cpumask_copy(&msc->accessibility, cpu_possible_mask); - err =3D 0; } else { - if (of_device_is_compatible(parent, "cache")) { - err =3D get_cpumask_from_cache(parent, - &msc->accessibility); - } else if (of_device_is_compatible(parent, "memory")) { + if (of_device_is_compatible(parent, "cache")) + get_cpumask_from_cache(parent, &msc->accessibility); + else if (of_device_is_compatible(parent, "memory")) cpumask_copy(&msc->accessibility, cpu_possible_mask); - err =3D 0; - } else { - err =3D -EINVAL; + else dev_err_once(dev, "Cannot determine accessibility of MSC.\n"); - } } of_node_put(parent); - - return err; } =20 /* --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 722A5446829 for ; Tue, 11 Aug 2026 13:37:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455467; cv=none; b=l3RE77Q9KXn7FQyGsKF+fBrB0ACdxniae4T0I/lROfion3Rlty2ri7Dec6wDjvWrOOo6Ejgv63L57z2bikaw8Df3ZejlGUTlkGcVzPvdHw1z7UBYRC5g7Ro5aAz8btBYcRq5BY7D7NMZ1kdrPz1xVpp83ZybdrJb1ZSlWwSJ18s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455467; c=relaxed/simple; bh=Q2g8rNQTl5/Mdbyd7uWKNI40mnuBoQ0th/Z4yqlIjso=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ff6iDgI3nhUgEl752pYd6TAGcGSoj7GzxwWK/eCNfgID9j1vofc2/gNjMfjc3hc4nLvQRTExNEG1MG3XxCvuoCozQnEHukVNgXvcgb6vltr2cx0IjCVRNi0NfOOAcY0T7XvXq4UNnggFHj6+m5AI+PkwY9lPEj8E6U0L1x36xk0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=VA1SxQL1; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BnVB8PbZ; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="VA1SxQL1"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BnVB8PbZ" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWiTs453689 for ; Tue, 11 Aug 2026 13:37:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= OvZUgSUI8jko8+2U2sHOzfKGKXNhZbu+gmqY3GBbvWc=; b=VA1SxQL1VJOPQG1n +1pjJUPFvJwWAPLUYS2z9S3oZdJLw/GuXjlF9NQKBVqVPns6gPc0l9QadbH0xhv4 0AdUEEVSNCm+Q2uJRPdl8RW6YX+zC71BER4VQHJoqMlESPjVBUKcdocfb2xXa/Nb VcA/ocmYVMVLs2fiv2mBh7kDpuzzMXnvcKS9+DcjqRKKo/jb8agS0d1JH6sw1c7J lpPST/RQTNp5qvTTFYQTWWfv3CLb/7Xwd5F2N5/XzdNKj0pIc4RVgXgmAEmIvPu8 1h8JYDjUw4rmxxcdUpI8ftH3MYJZ8iQAIZm/hz5iNSg8+oid0m75YmkuC9BV6aoR SjGLAQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g049kg5fd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:37:25 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2cf7dd9fd91so30921925ad.1 for ; Tue, 11 Aug 2026 06:37:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455445; x=1787060245; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=OvZUgSUI8jko8+2U2sHOzfKGKXNhZbu+gmqY3GBbvWc=; b=BnVB8PbZTAWxcXC/3mzVPq3vQ2I0I392JUrAZxOGgqmgRv1/u0MbnSRNvFhUQ0ERl9 DQ9hvn2jvgdKfu9d1E2cutEJuGfd5MIcadrZM5rub7Y0KV+UDyWn+txXLb6+p86VhRhT fsTz0Phs2sK0kgZ9gJ0Irqc/YCbJ+5HZHl9NV0leR5lC3RUH6jnSuRxoUUvRDjD0aB1F wSXXlFynJiZvi4vfaXKY0/v0/0JkbDHac/BOzg/TnYszDnOxbxdkAAngVE/Unh0yXZk8 ChuB+23UFH0wsTdtzxB80dhjgW8Ks0vxYs+absnL9yItGqYIETrdBnFyiW9FHHnj42nV lD4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455445; x=1787060245; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=OvZUgSUI8jko8+2U2sHOzfKGKXNhZbu+gmqY3GBbvWc=; b=n64v4ToiFp05Eos3o77QaAzzA67wGqCGmDSYj+aNwhpiMZTNOF7nIEU6bK3rXUmemP 0bmi6Xy6UapBZFVzXyuy7a+tpwptqmOexdtFJs1SY2c340sKPdmL2VUdnMmSEBISDgYn hGm8uKxvg+RqS0S8yuGaxU3YF5IjGoSR0aZEwMNMSyO9nfvrzvEoN55k1gMks6QE8Ep9 ul/eUb1ScHlfG2IjcoGQZyKfbKvbfKhcq4Do+/PGaQFSxiUU86ByVzXzcTNF5sVWULni 8YvDZnVZn18nNIBRc4sNBi6oBMJYrei4iRGPhjFhmOIbT846xPa/OiPJMngPL2Wqclra cVEg== X-Forwarded-Encrypted: i=1; AHgh+RrvawMG47YAbxBfAz/BjM+DZOlGGBTE+02yr7qBw9k9nBHygNIAZonvuMHRn9zQWeRFxwy6YGgrZr2yHr4=@vger.kernel.org X-Gm-Message-State: AOJu0YyP9McRTxHykUEB2F2yzbTl6I1NgLPcCNzhx+j35S8LU5yHHYPu ha2uFoGdf7mW8NwZ1aDAqhIyuyLUrWAbKSuH70fvPJARBA0D5k6zmxCHgRrXFp1gISZtVw3J66n KOV20ucv6hNw48Jky0vXmIAFPrRpBXZqmApPtdt5UPW6/iEMJaFD/1SKTC+PV9K75mlc= X-Gm-Gg: AR+sD104kR15MAGAum6hhPVdqQQkBCbCOCK+q7Td6VYA47cBrhmlsiUIbx/J9u+1Gqd s9TtOpFKvku1CkMk5VpYz4a0jfRLa0xdlLRPuZOM7Uur8ZsAc/8Tx+LzungZjfwMrJAKqBr6iYT JONSTQFyIBfO+Q2KaMYNKEp9uzGLys716L2fOT2WZb4hlfhPxSqARMbtArngVp1KYULFYA/eMj/ QPMt/hJyihqjFmv37LWMHnVXof7Z9KNyedsKzkPHUcJsltTcIzRPUKzHLuWci4mNbjXmCgQ+l/q OQB4V2TIgG0nnd/QPmwWJxONtZjyP28m++2FZLHmlaEju8ERKrWJ02vIU3kIH0An5kCyLcoqBQ8 wuc4GTj49hcUOq90K8HJwBY9xkA0Ny6mxQ+RRx0wMVfchCEOwaCF61rr+ X-Received: by 2002:a17:902:d485:b0:2c8:2808:3ec9 with SMTP id d9443c01a7336-2d31788ea53mr37192835ad.12.1786455445033; Tue, 11 Aug 2026 06:37:25 -0700 (PDT) X-Received: by 2002:a17:902:d485:b0:2c8:2808:3ec9 with SMTP id d9443c01a7336-2d31788ea53mr37191715ad.12.1786455444454; Tue, 11 Aug 2026 06:37:24 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.37.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:37:24 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:40 +0800 Subject: [PATCH RFC 11/15] arm_mpam: Fix mpam_dt_create_foundling_msc() to create MSC platform devices Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-11-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455327; l=1946; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=Q2g8rNQTl5/Mdbyd7uWKNI40mnuBoQ0th/Z4yqlIjso=; b=vzTRB0AF+pFRMYnNgKH1uIlaFES33p6mQJ63KtCUkA9LHR/5oZRPDKE0Ofkrx5KGIM9a+qDlN SnmgFirBDTiCoGBGz1gdykNdFv19pfZ8PtUHMkd8dmJ725IbaGko1ND X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-ORIG-GUID: 9AsXVpEKl5A1g_v2vaNIACrG8RS0yHgf X-Authority-Analysis: v=2.4 cv=IO4yzAvG c=1 sm=1 tr=0 ts=6a7b2595 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=ksFOqbt-pGiEIAjTAq4A:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX+/8pNIAfJDpA rzu3YDJZqukNnFGLp2xxY25+BWuwZ2jWc+0Cr1Mt5PVaV2ONK3C6C/n3U9MZDAPAz1gBqeFAWoO X4MGMAuADDbuELsDj3DJpvW5Q0qJ843tDiuD3qfjlmz+ZDvOeEFhA/awmtxMoQuGe8fc8ax65DX X8TCv5jmwwdP2c2i27Zt9/eXqivp8R+IIhLJHj30U0g1cWsWE/sUmTiFdESkogOadNLkq+bm5GN QVl2cDydbRqE46ZvT6p3qOnz+LmQIXkj50hWOxH2HBhPpuFoQhlohqdhQEJStbJVnhXzKZiaZab DLoxf9uCA82UQfeQoDkbgRQmNmskR24A08WAWQ2TJroRrbAH5BsQjDh3Zu29Vda9Ekk2mgbiq+/ htekGPZKVp85ZrivNu0TUTmI+F1MyQwHRB2ZbQ+DqRhqjG24/TjKkFb8jputyDnwS/0kboFVVZk oEebzJ4RSFBF7sc4g9A== X-Proofpoint-GUID: 9AsXVpEKl5A1g_v2vaNIACrG8RS0yHgf X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfXx4vNkNGgVibV adGf3J8xBqXb9ccrJC5aGGzc/jVJvmnpXcySOxnzunzSqkTB3QkvNRdy/ZRjkjGKu6ODQI7RmOR dDfHvN//FG8xCM3GMpPxIYJrMSQwNzI= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 The original code created a platform device for the cache node itself rather than for the MSC, so the MSC was never created. Instead, walk the cache's children using for_each_child_of_node_scoped() and create the platform device for the MSC child node, skipping cache parents that firmware has marked disabled. Co-developed-by: Huang Yiwei Signed-off-by: Huang Yiwei Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index b0e67c8349c7..eac3bc695fd1 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -2358,23 +2358,20 @@ static struct platform_driver mpam_msc_driver =3D { */ static void mpam_dt_create_foundling_msc(void) { - struct platform_device *pdev; - struct device_node *cache; - - for_each_compatible_node(cache, NULL, "cache") { - struct device_node *cache_device; - - if (of_node_check_flag(cache, OF_POPULATED)) - continue; - - cache_device =3D of_find_matching_node_and_match(cache, mpam_of_match, N= ULL); - if (!cache_device) + for_each_compatible_node_scoped(cache, NULL, "cache") { + if (!of_device_is_available(cache)) continue; - of_node_put(cache_device); =20 - pdev =3D of_platform_device_create(cache, "cache", NULL); - if (!pdev) - pr_err_once("Failed to create MSC devices under caches\n"); + for_each_child_of_node_scoped(cache, child) { + if (!of_match_node(mpam_of_match, child)) + continue; + if (!of_device_is_available(child)) + continue; + if (of_node_check_flag(child, OF_POPULATED)) + continue; + if (!of_platform_device_create(child, NULL, NULL)) + pr_err("Failed to create MSC device for %pOF\n", child); + } } } =20 --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 3861536D517 for ; Tue, 11 Aug 2026 13:37:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455469; cv=none; b=mmNUBNP/Q6tnmGpf3Lz2qTpd5XKBERr//PKAcnafmWHCQfUCw5sOPUxOGZ32SFEz/w1rN+zWSGVRh5KrSH/Ity0bPnhVMN95VLyybACrR76WYLAJGGp2flFA6n7tkoPd5yUu3qZaHhvrB7E2K0pMYnqyEp+gy74xPUrAlukV+Qs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455469; c=relaxed/simple; bh=BqtVh29iA/EPyooGaO2p0jd75Kq96yWmIc16Fu8hTJc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Zn+XRtNUJFBamBHFocj5BD6RTScdD+ngWfPYFFndNuWwueOkCgR30WIqp/p9UeDf6gLX2uUIfaE9K6+scJbGsylKP1SX4cDJeNsN7dXuRt1v8AYD9t1tySbEkwGxUHnHLQPSfx4ure7LU8jifPZkxPleat4TqeyaRSXQV7rUOCw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=aPHwx4TN; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MG+BQsho; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="aPHwx4TN"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MG+BQsho" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDXs4B1092542 for ; Tue, 11 Aug 2026 13:37:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= D/utWiq2ARW+ai2bHcmXpD8j3glUx9uY48Adn0v5qM4=; b=aPHwx4TN/9Ocqb9p wUvxUinIJWSnN6LTqjbovhGfIremLbEOj+Jcf8X5JZwBgvsFy51O5FZwvfJo6jXo bwTCd7DpcxVRJO2i9xEtJlyOh5UPeDoUfRHOSaV4pdNYc2zh3B7dtmLxH4K3QPb2 8W/w9JHjpMxPT+Lms+tAmsJL1/jxaCQI45fI/NsR9j6gfrygq62wJwfNRAEt+eNC 0p8gy1pPzmFU1vu86u2WksPwa+JygP2fJ06/HVNSFRfrg8YLDIDklMNYNp6ubrNp M07QADMAlaUPNKGW0QcYLqQ1PmqQVCk6JrYKPnT8nShaO0Wvq0rwKr4Uq3Q0XPGC ozWM0A== Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g049er68k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:37:32 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-c9c26587e67so967105a12.0 for ; Tue, 11 Aug 2026 06:37:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455451; x=1787060251; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=D/utWiq2ARW+ai2bHcmXpD8j3glUx9uY48Adn0v5qM4=; b=MG+BQshon0Cof20gV5uLpASr1ZBu5l6VhbgEBbb/YqxkGTgpIAVTA2Yidgd5dmUrVa 1hH1lCRp/oCJZijTnmXhRduYPIriT3Wjd5+XGlXm3rMcXCPM8wi/caK8/2U42rb3mKVv s23pMr7d3eHw0prG96F3aYvWBCfp+l08N5Ge94ywaqYHeVVm56JXmn0vj9yYsn98gpbo ocxSpwJWOayWN26SjeSkKXMk+QGHwDLkpaIlLs9vp3WO0OpATQmgwJnS8uQh/wQuzCtc b+9djOX9/TfNMGCV74nWETrWQ8vo5Q2UEyAULsm4tINJwDLpJ4dSPD18VU/1Q69jWB7Y mmpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455451; x=1787060251; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=D/utWiq2ARW+ai2bHcmXpD8j3glUx9uY48Adn0v5qM4=; b=aeVFfGFAh72ZDNzauSaXfNrmxqIcJUa1QZ4DVqigTffhaKEGV8WCpRXn2BKAJpedsd Ap37musOv7SPOM3ozFFg6tJ5ouao/POZaniOBXXfkKKRsELVSj16ovz+EQ7gbYJTwdLX jRDI3c/LVENBLr2KqkgRWcI+5CAgmJbCKmRPYHZwAac2voNacMJ3/PIZfr40lKiit0Ky VAztkaPzVr+Eo0qn9tHwMLztI/knJhvychu2XhIfCZMnid2S/FTXCP0AHBHs8KldBKdK AREg7Hvh3mdFLx5HM5iWH1aDfqp/U13mDtccvnYmLR0Gb2NpI0TbtM54TMEyBQ28aCIN SNHQ== X-Forwarded-Encrypted: i=1; AHgh+Rr7/oo3P3iS+mp4DtGyBwmsIt2psoXyAQ68/USuIlXAccpi+Ls9swKkthnQ4DyeLCQ3JCTtK7M9qlPOdRc=@vger.kernel.org X-Gm-Message-State: AOJu0YxG4dp/lRraL4Ckcs8wIFqCeibf7SQt2jBZ2EHFJjpa4lvSXfEk G+goROAP8IzJUMqpxCsD3jttJmSj1+JYvhLtSW15OZNVwNlxZHSBYN5yO12T1DP9ANex+D3fWY/ rXGzDrT7BcTH6V+bVIpXF+v61YqCLdVyU4jV062HA5SSABDN+ORVXmZbDnaqF1RU+NFI= X-Gm-Gg: AR+sD127Fsx0EDNoANiHy7h8ijZeyRVFvrElqmLaQO85qCCpbzJ5+ywwqQIy/TEPpDD 3cQbQifAQIMhaIOG/X7vfBT+UdwCpcHMKIGgSDa6xBmNlrbaX3O2XvQxGJ0Oepx3umia1dTK3mD AtXC4WamfcKyhtHQxx3KEF/0vVMkm6lgcJtTL/Vt4aVBskeVFLkAkeN4kXEP8AQTr5Q6qX530Jz MxwJE8LWEKpWhV0Ynlmz+rgXCLn8cWOybBkVDhOMHYoS5FbgWhrctjrTPHbmp8CrAJRv65fs0MN c/672z6A6ZoxGZMPnQiCgqsea6zR2ObPyuXA4SbxHsP53hUMhACG7FVSW92zZvuJ6BZEDtp8b2C kLVjgHOUDHOvBeaRr69tvlJ86wPYn7cuw5Itiw9dYzVfeJP9K9pPVSq9q X-Received: by 2002:a17:902:ccc9:b0:2c9:e846:a589 with SMTP id d9443c01a7336-2d32da94a37mr908495ad.13.1786455450891; Tue, 11 Aug 2026 06:37:30 -0700 (PDT) X-Received: by 2002:a17:902:ccc9:b0:2c9:e846:a589 with SMTP id d9443c01a7336-2d32da94a37mr908075ad.13.1786455450356; Tue, 11 Aug 2026 06:37:30 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.37.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:37:30 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:41 +0800 Subject: [PATCH RFC 12/15] arm_mpam: Fix get_cpumask_from_cache() to clear mask on error Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-12-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455328; l=1277; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=BqtVh29iA/EPyooGaO2p0jd75Kq96yWmIc16Fu8hTJc=; b=nCUjHi/w+wyvmUPfAJxF7oK5CzUc/Ibx4DR6Smu7voNpfIckaSazwIbHZe1dexxBOsrONZqg8 462WF/100brCxPIzrTaFHv2GKdyzfFPcc0Azu5wbBLoI6nobQPkOm5L X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX8WiaPVHeNs0P b2MiTy//FkLHTiwhdOwyDISlHmDd2z8Ejyxqr/RcCmO9CWkJbwYUUevuJcaAnMw8dXNQKklpJnG Jg8GBPOCsqiupT7AKdJNcSEwCF1hiOg= X-Authority-Analysis: v=2.4 cv=DoFmPm/+ c=1 sm=1 tr=0 ts=6a7b259c cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=rjHAeU6eiAh5UonRzJYA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 X-Proofpoint-ORIG-GUID: P-YK-bN39HC2pgQF5JRBbiWrAz6zIByy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX94Uf/5WvgQfB 6WgYaYf1zNadFtAGY81KIQiPlrQa+7Q0HLBWAzKMHDkajxNnlVrq0+gGH2BCoHpHbUJcFhb3+Xn 7bjNDG06Lazc+HBbF29tUl49w6RXfC/+i8KAIKekMWgLkeNwFt73DSwZtWohX1dOKrdxVCckbDq V4f8zntMObOixYGSdI+40j+BPXCRmwwSpks1YpeiKnZNHhGJ6TIp2gNnx1T0Dvd3qhmgCDacjmm pmk3Xm/fA1R8ysgS61e854AJFBR6KYLqSogH9rniCW0bg5zjUqXqDu3Fx88hi87aBWHOPEGaHW7 P0iF04JfLYLHr1RSTT1Q/iq+RXqXG5Ce/nIj6MdSFIji8ebxs6G8wIZ1s8HQQ2ir1FPGc7KO8yW 5tO+Br3dF+CoB8Is1sTLjDkpFn4bnWwdi4aGFGaRyeDCZdsZpRWJtx5m23d69hByDgdZOagwuXh jPTEXH3rhVeOb7hXWCA== X-Proofpoint-GUID: P-YK-bN39HC2pgQF5JRBbiWrAz6zIByy X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 priorityscore=1501 phishscore=0 suspectscore=0 clxscore=1015 bulkscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 If mpam_get_cpumask_from_cache_id() fails, the affinity mask may have been partially filled before the error occurred. The caller has no way to distinguish a partial mask from a valid one, so it may misuse the incomplete result. Clear the affinity mask before returning the error so the caller always receives either a fully valid mask or an empty one. Co-developed-by: Huang Yiwei Signed-off-by: Huang Yiwei Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index eac3bc695fd1..d8856864e89a 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -243,7 +243,12 @@ static int get_cpumask_from_cache(struct device_node *= cache, return -ENOENT; } =20 - return mpam_get_cpumask_from_cache_id(cache_id, cache_level, affinity); + err =3D mpam_get_cpumask_from_cache_id(cache_id, cache_level, affinity); + if (err) + /* Don't leave a partially-filled mask for the caller to misuse */ + cpumask_clear(affinity); + + return err; } =20 static int mpam_dt_count_msc(void) --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 B6779456299 for ; Tue, 11 Aug 2026 13:37:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455476; cv=none; b=LVCMDs/zrnIWAHNBR2BSi5foPlljIZzQBySuSHHm5sA420seKJFRxiLUKXcorttR6LHF1YS9lNFQ6dCawKd5LH0e6gpj4W6sN5pcdyfA2ZkdVWMyzuWXBYJinmHTQDE80kyMLdFMWHpA3GgHyr8/ad1DYbXBwc3lAyfk2TDXLBQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455476; c=relaxed/simple; bh=/QMjM8kIgdElOSlo+HE58P/0O+m2y0r6yoGjhktem2E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EdJN4Pt2TQcLLw4L2Hgx2NrGMdOCwAIGCNVVMGoR0jjv7tFbJ6VaShFkE91eXWPmZVGhHbtWrtuzkPITvV7wDkat6s467Enr91j6TK/lE5rLJJV9SyjFR376HAqAwyE4k88nUqnwELHyWI49U3+Vt+wGnjSQg2WM+RE/tdN4RP0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=bRuo4s64; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YtakOkdR; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="bRuo4s64"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YtakOkdR" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWj4t3718152 for ; Tue, 11 Aug 2026 13:37:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= xUOv7CaofSadg3VAAhDqr9l7s5Rpo1MskORMDmWB7lw=; b=bRuo4s64WeTRMdD9 7oT4flosl/yxL2Tb9565hragWw/8XNWYjl7b4a3X3oe42sAdQGO29cJJCpn1UTmd KAqys3CT8+/r9cXZThpeW07S4TP3xcG95ubNVZYJUYlenS9+MtVqH41BMxI2XIkz qdsRFy3ys/XMr0iZi6lCFJUF3DUGo/aSwt9VkJaPT2c7m1twQhluqHL39RdB0Inc 1MQr0cI2xuEhNNgV9j6vuM9T2mfETqWmDHXncBxsvqyWd9geCgq0cBwrwz6/ZC01 Trxhb1XxqE+Yw68vF1FLJ7gnz9wUukRYY3661WQdWUOt9kfHgbf/7iwyunrKmnjI qG/1ow== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fyxwesfum-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:37:38 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2cccfa32670so45207105ad.2 for ; Tue, 11 Aug 2026 06:37:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455457; x=1787060257; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=xUOv7CaofSadg3VAAhDqr9l7s5Rpo1MskORMDmWB7lw=; b=YtakOkdRTdfUMLgIjGoIZx/+gHCnR0kAAP9DJ0Enszb+j+PcMdla5MZSQAam3gO5bU efbT7lOQrbAsKv9xE+0bPKBT7zz6b/NyCggXQqKmMXMJRTEWMAgeGeDnuWoqNA8c2rad 6hhGgZUkkIOvgG8CJEAJsrHZD5Xp7DGwxKBtFK6YaJ7TSYfy+zjJ4A4k7kPikDZFG8ok DxCDJUVxRe59faf3D0xN+20DSk3KwxzLVTVh5uxg3cv0tRE8Cya4Bp2b2lBXo+9nIY+r qXtzscGzrZZ2sKOxS2RwAZQdSgqe1xk+WHzyKBe3By7UsO5RDvIQPU+lSoyKGrXH8p5N 5cZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455457; x=1787060257; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=xUOv7CaofSadg3VAAhDqr9l7s5Rpo1MskORMDmWB7lw=; b=MWzcpoIQ3DgAOrfj5t8J957ORsZuZqufTT4l0K3fJzlc/cOG0A5Pp/TAViyaXiX/Cg E5kTCAbb2+u//+kK/vctKiSVYSqC/W47GFDucq4DNE33w3JvNh9LhgHwvoUe4FxQStgK UH4p/p5zHHLrFkQg4IC0JYde9ldTuBBd948yKM4pJucXDQjItgokK0VgK6oBW0xYDpB+ u+Hn6yhqWV4xr9w4dZ6Gg8PJpb+zdC3mHE/cYQZBEgms7/iQNQj40i5AfelUkOyPpqdz vIVMwU8zGiCDaa0V8bjnCkyxEWNQgQ2vIFwQ0ONFUkLB3GZqPW0uRPa/5ouAZLHcOzCj ZiPA== X-Forwarded-Encrypted: i=1; AHgh+Rq70nC5Ou00S36MtfVyK+pA4ZQfQ1q85+wPu/SAFpSb9xvvhuHZNz07m5uK2We6ILkbYyx9oDzru1rHX9U=@vger.kernel.org X-Gm-Message-State: AOJu0Yx2uLckE5TyyUOCS1KSfeuRAMG50wHA1fKZoiPD+/MoVG2bDLEF 5RoRh/ukMSoHGDYt8ZkAHLOAj6i5ADSgrqRphT1fktDXJ2+4G5ScwVU0GdJFUN/OZWWffJHzcO3 AQMiQrnf3SISuE0gwpnScBFBq4tGXZeStFemrHXpZSlzgcglG3rrU4OqGoDyoGeorferrgJRHgr E= X-Gm-Gg: AR+sD118nhhrtMqJ87EfqZc2CCIBMd4T8uiqLIoRbv+wYr34MWIqV0XCu+MTKqkFuRx pOq7qbTH0VtXEM6mfholTKEPX1DPUnwBQO9il3Jp6reuXiwd9/g9D1qWhZRYilGM9yjqn+W0mTW dBdCyXNDULht/wjkkMtYIa0IBtVXnUxsT7VhzBZ09szRqeUQga4xDfqULfYqQVXIc9XvvVfgM5g ZJ9ucTblTLkGYLhfpYLrLoBHzqgQxDRxU5MDugsMd8O9jQInSZBI+7e1s8OpEsIj3BupjkEH7ou alpnXZXtkiY+RiC+bCYR++NNzPyD2PGHXg1zjDkgdpin77OxOw56hP2nJv87xxYij5eFm8m+Q++ Jwnf6HJYcFkvanTeYocJs4oU+uGvABdmn7s5zjNRKncQOf5RIy0wD1oev X-Received: by 2002:a17:902:e948:b0:2c9:a5e9:c26e with SMTP id d9443c01a7336-2d3178d4294mr44249735ad.13.1786455456869; Tue, 11 Aug 2026 06:37:36 -0700 (PDT) X-Received: by 2002:a17:902:e948:b0:2c9:a5e9:c26e with SMTP id d9443c01a7336-2d3178d4294mr44248795ad.13.1786455456276; Tue, 11 Aug 2026 06:37:36 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.37.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:37:35 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:42 +0800 Subject: [PATCH RFC 13/15] dt-bindings: arm: Fix MPAM MSC binding schema and examples Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-13-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455329; l=5185; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=/QMjM8kIgdElOSlo+HE58P/0O+m2y0r6yoGjhktem2E=; b=zHAvC4moxJN8hRDa9ArcM/sZ8ssDY1BUQR/2sHtpgm1ryjno1fmUcd8GWouH89DHPDZIjtyi7 gzFWdhCQImsBCq7KbI1yxzYO2OQ4kXv8dCs3BD4up6aRqZhw0aaFIiw X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-GUID: jbKQLVxbnTGQHZa7d5WyMyTrHXJqQNWl X-Authority-Analysis: v=2.4 cv=K8QS2SWI c=1 sm=1 tr=0 ts=6a7b25a2 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=gEfo2CItAAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=d9rEuZw9YcPYe4YaNdcA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=sptkURWiP4Gy88Gu7hUp:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-ORIG-GUID: jbKQLVxbnTGQHZa7d5WyMyTrHXJqQNWl X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX7spoOmgP58KS SQLJR6mSpgNv0Szhj7t+7FGsIRicunuyBFIip8YFTlNOtXiv80CG/hCN4JDwb6uogUFdSn9nnqd eFbGoZsh9HVjE4dVZCbXQpVQVElSAho= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX0gVXdFzrwyfe lJQbU07vQ2H6nlVdaRR8lOIL07IQ8ISnVweqF0UsC6Zo16kz02C1rXFUowXISYxSAVLBQDfQdug EDmjunrOciACGOWgMUtrIugpyhgzbSck5MjAU7of1g5pI4Ae3Xzf6YsDmm4euXrT+1bUn9mW0Zw Hb9tGMkl3R/PtoTocvpcFGKiKbJkD7EHlaefHZ0Z++K3mGPjbL4/jaAz+BiDA+0FDtI8dx7avfn mNuI/j0Squw9bJeRv+GjH81vYYFulPTIC0bcDTZcR+rmsblMJQQbtejtp7FqMb+/8nUFuOAGikV 3jGH26EEwcHZ6Wji2123fLfXCdaVBaVSQwsYFIKRDP+OrhVpip+fFhZHN29mFVPYaEtgaoI9U/5 Ham2HVUmjpGYFNpslCAHwQzwP+XndgfUw2Bm/zRXpFuxblT4yi9jl+lMx4N+HceTp80o8NLwPJ7 kULdLq+4by7Kjsi5fuw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 spamscore=0 priorityscore=1501 bulkscore=0 clxscore=1011 phishscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 Fix multiple issues in the MPAM MSC device tree binding: Schema fixes: - Move maintainers field before description to follow standard field order - Change compatible from fixed items list to oneOf to allow both standalone arm,mpam-msc and the two-item arm,mpam-memory-controller-msc + arm,mpam-msc combination - Constrain numa-node-id as uint32 with description instead of unconstrained - Add phandle-array type constraint to cpus property - Fix bracket spacing to pass yamllint Example fixes: - Replace arm,dsu-l3-cache with foo,a-l3-cache (no upstream schema exists) - Fix msc@41000 reg address from 0x0 to 0x41000 to match unit-address - Fix ris@2 reg value from 0 to 2 to match unit-address - Add arm,mpam-device phandle reference and remove TODO comment - Remove unnecessary blank lines for consistency Co-developed-by: Huang Yiwei Signed-off-by: Huang Yiwei Signed-off-by: Yin Li --- .../devicetree/bindings/arm/arm,mpam-msc.yaml | 39 ++++++++++++------= ---- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml b/Docu= mentation/devicetree/bindings/arm/arm,mpam-msc.yaml index 53a6fdbbf05f..3c7b13a23ff2 100644 --- a/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml +++ b/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml @@ -6,19 +6,21 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# =20 title: Arm Memory System Resource Partitioning and Monitoring (MPAM) =20 +maintainers: + - Rob Herring + description: | The Arm MPAM specification can be found here: =20 https://developer.arm.com/documentation/ddi0598/latest =20 -maintainers: - - Rob Herring - properties: compatible: - items: + oneOf: - const: arm,mpam-msc # Further details are discov= erable - - const: arm,mpam-memory-controller-msc + - items: + - const: arm,mpam-memory-controller-msc + - const: arm,mpam-msc =20 reg: maxItems: 1 @@ -34,7 +36,7 @@ properties: interrupt-names: oneOf: - items: - - enum: [ error, overflow ] + - enum: [error, overflow] - items: - const: error - const: overflow @@ -44,7 +46,9 @@ properties: accurate after a settings change. For more information, see the Not-Ready (NRDY) bit description in the MPAM specification. =20 - numa-node-id: true # see NUMA binding + numa-node-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: NUMA node identifier for the memory resource this MSC con= trols. =20 '#address-cells': const: 1 @@ -72,16 +76,17 @@ patternProperties: maximum: 0xf =20 cpus: + $ref: /schemas/types.yaml#/definitions/phandle-array description: - Phandle(s) to the CPU node(s) this RIS belongs to. By default, t= he parent - device's affinity is used. + Phandle(s) to the CPU node(s) this RIS belongs to. By default, t= he + parent device's affinity is used. =20 arm,mpam-device: $ref: /schemas/types.yaml#/definitions/phandle description: By default, the MPAM enabled device associated with a RIS is the= MSC's - parent node. It is possible for each RIS to be associated with d= ifferent - devices in which case 'arm,mpam-device' should be used. + parent node. It is possible for each RIS to be associated with + different devices in which case 'arm,mpam-device' should be used. =20 required: - compatible @@ -92,14 +97,14 @@ required: - reg =20 dependencies: - interrupts: [ interrupt-names ] + interrupts: [interrupt-names] =20 additionalProperties: false =20 examples: - | L3: cache-controller@30000000 { - compatible =3D "arm,dsu-l3-cache", "cache"; + compatible =3D "foo,a-l3-cache", "cache"; cache-level =3D <3>; cache-unified; =20 @@ -109,7 +114,6 @@ examples: =20 msc@10000 { compatible =3D "arm,mpam-msc"; - reg =3D <0x10000 0x2000>; interrupts =3D <1>, <2>; interrupt-names =3D "error", "overflow"; @@ -145,7 +149,7 @@ examples: =20 msc@41000 { compatible =3D "arm,mpam-msc"; - reg =3D <0 0x1000>; + reg =3D <0x41000 0x1000>; interrupts =3D <5>, <6>; interrupt-names =3D "error", "overflow"; arm,not-ready-us =3D <1>; @@ -155,8 +159,8 @@ examples: =20 ris@2 { compatible =3D "arm,mpam-cache"; - reg =3D <0>; - // TODO: How to map to device(s)? + reg =3D <2>; + arm,mpam-device =3D <&L3>; }; }; }; @@ -173,7 +177,6 @@ examples: =20 msc@10000 { compatible =3D "arm,mpam-msc"; - reg =3D <0x10000 0x2000>; interrupts =3D <7>; interrupt-names =3D "overflow"; --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 96542448B87 for ; Tue, 11 Aug 2026 13:37:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455480; cv=none; b=t/khtGXXbmXO7YV18nazjlYeQ+//G1B5PY19VWnV9MKvaMPL//y+Mv8r1WoZtIVHBstifbWvhUYPAMrj+ueebiHJQ51MfzL4yyxtDnAx9ys8eOvwFoAjkM1DhQqbtUk+/6txv2bAzgqYu5AlZYzjAYXiHDcluqTaap5qAXJVpIY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455480; c=relaxed/simple; bh=zaBYwdzqKnPLChk0jQdmpN+Gtk81dvYuluYIJGNKYNY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CAyTyD1D8cms8DW0HZFtv8a4JB5GrFNz790G2qwaQR843y+3UfN3Um8lBCu21AS1PeV0mz0hW/hZj/nQUYTEyxtp3DU7TT5X1gktvCedhs3o5Sj+bc7GXFe8JGMbSmrUhU69kRvS0sFBWLW1ajVWGGGp5BPmxRjkjvK5Tsi3t94= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=PDczr3y4; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OEeBB52K; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="PDczr3y4"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OEeBB52K" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWaDt453540 for ; Tue, 11 Aug 2026 13:37:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= I4kViRm3sAJ0GJ6v9v6dra4X1/iqxcX9YHvXUBsWd+A=; b=PDczr3y4UfA6V3mF PFx885SU/ZyYi5BkDXvlppu8bxwdcpIIj2sMwbaDr6hf932H6gUKX47rljXynaZy QazBr6mWnvLB7KUIBkTH5MFalUFpCfBTIPA+n45GvRd0JhZb8fFL1W6mrgotaQ8w t45NZ3x8Oe39x53+cI2LrAEoWD3/6Dsmi0NP447K1F2G9I5CmPvsl5+zmn+D469A 9ADWL1QZdL+B37znuAySs4iKw5bo/DrJOyFeFQK13z4N0T5JA7+Uc8AOuiDNY9fb yCGoW/E2LdaEcTU334w9+4TjZx0LxYA18/1GdmJsuEaW78eGqJGv8nWQffBsSHm3 iKkB2w== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g049kg5gn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:37:43 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-392cf18db8eso1818940a91.3 for ; Tue, 11 Aug 2026 06:37:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455463; x=1787060263; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=I4kViRm3sAJ0GJ6v9v6dra4X1/iqxcX9YHvXUBsWd+A=; b=OEeBB52KG+l5HFVfhX67guZkfavmFau1XmXLCJFqLXuYa3+Erk1e9KCxJGOn5m5uro B2M1iLzcrQJlK402KI+TukNa8w2MCl5o1+WXSLLm2BNfs4aCu0kNFclivKy4Pqyfu4Po hFuSvZLL43TeGoBMyOiSp1JsZYI6qJyVPu/8pHoYQO4pmNvdtCOEfaLfUzZBr92eVW0d Nv42002bSsR9URlDMN7ToZzV+6UoJxE4GRF9/60f5u4OJtzOrGKanONwnw12494wTSY2 WOs6SNJAdAyO62QZJ1TDDvM/Pe56RaUljNBo8iBatU1PeIpVaOm4B1wwH7NF/LeW4HbG 3RXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455463; x=1787060263; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=I4kViRm3sAJ0GJ6v9v6dra4X1/iqxcX9YHvXUBsWd+A=; b=Icz6U+eoLOmRLrRvxGIf0+oW4KV9BU9m8DN4VwZ+oEu2OFiDVwN9YGepmpzMAAzxl3 PqtD8z7sW8TJVnS8Ee9/Pe5STZzr+Jr1rBZ/l32p7N88JrU3/mjpAFsdq3RkEeOiRDHx JOsFeNYJNRM+eM+AHYQQl33U2D9/N0PF0Ig8ykGTkBxHf5K4+08MtNMlG7d215J8UtAH BlKuA1J5koeEOkWEvX6rnp1f2SxoOEV1oAdkwIjiVvRET7Z9MqDlxjmNTp6O7qpMJs8L Jor9Pw1s5m+RP10iQ7QQyWklUt/i31Sij1CUUIQ65BKpCDRqBEwhmWfipcQsDYCWSeWu QLLQ== X-Forwarded-Encrypted: i=1; AHgh+RomjPXIF7Mr3S5NKt4dFZgsBymH5cewFB6puxCf5KPtvAWF6Pq+OHjEQ/gDMw1kI82dRXBiBDgJr8LyZFs=@vger.kernel.org X-Gm-Message-State: AOJu0Ywt0Ugabof7eBdqmkgfYX4ON9zvnvEtAabVaeAASn2n7orgjs0g ORmknBBjl/T02Hvd7jwyuOq/tatIVQUUJghtGJsRkkAwxJvnPmd/8AGLcIVn/pALiOugYkObQkQ Df84YveYt04xaCriyUxDI2TmAF3SCCZCojM+76MhUwk13C21ZprJl25CVhpnx440raFE= X-Gm-Gg: AR+sD12YjM1ayFztcDxHTdO8UVfrZQcRDETFXhuDvxxp0Pb69XYVFMu38ZpxUy/BrSq iJpWi/usqowGcfjQBMA2uBn9i/Thx5FUC66fzlcsvVW2ims8yTFpeU9BnNaRlBJvJoH2QlaIOtn 4HR7nMpjuRpFd9V1umLnn/KZXSfX5mtJ/iCHwS4qgnmJ4apsmSMEbzPjdLDsc4Q7rprNJiM7BgB glKKjHPJtALBX688Q/RLR0j8gpY3S0TxHerk/yihHhXoyWehlkXU29z2JLQVu9hEoNRwzzNOFoZ 6d1MKxZia1d/yh24xhXxSKDoF/LgDew/CJs3DBBjx1TbWHT+ZnL9Bh0CjmRSPKJq68MvM/Yzdp0 SwfZNrb7Q4RN5BfuUj4Jj/8dRqKQYGzj0iF6tJJHdI50IJb5iNsJ2bZJX X-Received: by 2002:a17:90a:d44f:b0:37f:ed7e:7e42 with SMTP id 98e67ed59e1d1-392ec56723cmr3832007a91.14.1786455462835; Tue, 11 Aug 2026 06:37:42 -0700 (PDT) X-Received: by 2002:a17:90a:d44f:b0:37f:ed7e:7e42 with SMTP id 98e67ed59e1d1-392ec56723cmr3831909a91.14.1786455462239; Tue, 11 Aug 2026 06:37:42 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.37.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:37:41 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:43 +0800 Subject: [PATCH RFC 14/15] arm_mpam: Support MSC accessibility derivation from RIS nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-14-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455330; l=6269; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=zaBYwdzqKnPLChk0jQdmpN+Gtk81dvYuluYIJGNKYNY=; b=CV39+MeRob0ID7MiE7jf2uDLS4vl9pceQh1lYO3+4YumI0OMEhNB+kgFUsxGLLVZH/eFQ8uUZ TwwYwdYH1sRDRup6i6/E7LtiBUJ6IfZkeWEDOEDdh9iGFcT/tsNokle X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-ORIG-GUID: Lvbn1oeCUC5YyHENNvwL0tqUamGb9ZAv X-Authority-Analysis: v=2.4 cv=IO4yzAvG c=1 sm=1 tr=0 ts=6a7b25a7 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=DmVZOekaPyhSFRrspXcA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX+BBSWx0W1pld nAz5kk5PK9lecdLRn+B3wiFJLxmaWApqm9WwEmi4EzWSi9UpXo8FPVtTra78a1tmtmi2P/Yik64 Qvu5jpRC0pYBA6bBgFAb+XFgEaNYbmByrjDFtl8Fad+H9D5AjpyQTETkXkqLS+9JjYUN3Z6ucfu Pt0lsiC9Zan0RLUCkveQM6i4gKlwwlk+frwuXPKSNvoTCTKS4jpSmK4b+uY+Mv+FBOUb3W5PHhf d3JuCGn61cV8BVGTh89MskZ2q1/h4TNO4CmQzhgivcKS1r/p9POr9edWzi/GmiMR9qCrYf4rV41 rzYhZh+MJHO8RLTILZhmPvKS3wfPbubwR2QPrEbwx77RVdavpvPuz8gbD/K7JnNqT8RhX20pFhA Q2MTXR5oFGZkota90Zdi8W5Ni1P7msAPpJ1EChWHYVGcrXx4ZwcAooU2YOlhAiFVyqTRfhCJJJq w8gKxpYaDkvU3IvfMWA== X-Proofpoint-GUID: Lvbn1oeCUC5YyHENNvwL0tqUamGb9ZAv X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfXxoU4/epf+r7R hwJh8AQXHPn/ASyxCsVaM71C+k3zacpcWWzsqftFI7h2znmok/FZtrEeweasF8sLOnGrubkJWtG ipkzU/HQytJtveAun3ocqjbGqs+IoGs= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 The DT accessibility derivation only handled MSCs whose parent node is a cache or memory device. When the MSC is placed under a generic container (e.g. directly under /soc), the parent gives no affinity hint and there is no fallback. Add a per-RIS fallback path for when the parent node is not a recognised cache or memory device. For each available RIS child node, affinity is resolved in two steps: first from an explicit 'cpus' phandle-array on the RIS node, then from the 'arm,mpam-device' phandle. The final accessibility mask is the union of all RIS masks; if any RIS fails to resolve, the mask is cleared and the MSC fails to probe rather than come up with a partial affinity. Factor the DT-specific logic into mpam_dt_update_msc_accessibility() so that update_msc_accessibility() dispatches cleanly between ACPI and DT paths. Co-developed-by: Huang Yiwei Signed-off-by: Huang Yiwei Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 146 ++++++++++++++++++++++++++++++++++++-= ---- 1 file changed, 131 insertions(+), 15 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index d8856864e89a..d0462239deeb 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -2156,6 +2156,136 @@ static int mpam_msc_setup_error_irq(struct mpam_msc= *msc) return 0; } =20 +/* + * Resolve a RIS to its CPU affinity from its 'cpus' phandle-array. + * Returns -ENODEV when 'cpus' is absent (the caller may use another sourc= e), + * -EINVAL when any phandle is invalid, or 0 on full success. + */ +static int get_cpumask_from_ris_cpus(struct device_node *ris_np, + cpumask_t *affinity) +{ + int i, cpu_phandle_count; + + cpu_phandle_count =3D of_count_phandle_with_args(ris_np, "cpus", NULL); + if (cpu_phandle_count <=3D 0) + return -ENODEV; + + for (i =3D 0; i < cpu_phandle_count; i++) { + struct device_node *phandle_np __free(device_node) =3D + of_parse_phandle(ris_np, "cpus", i); + int cpu, matched =3D -1; + + if (phandle_np) { + for_each_possible_cpu(cpu) { + struct device_node *cpu_node __free(device_node) =3D + of_get_cpu_node(cpu, NULL); + + if (phandle_np =3D=3D cpu_node) { + matched =3D cpu; + break; + } + } + } + + if (matched < 0) { + pr_warn("MPAM: RIS %pOF cpus[%d] (%pOF) is not a possible CPU\n", + ris_np, i, phandle_np); + return -EINVAL; + } + + cpumask_set_cpu(matched, affinity); + } + + return 0; +} + +/* + * Resolve a RIS to its CPU affinity from its 'arm,mpam-device' phandle. + * Returns -EINVAL when 'arm,mpam-device' is absent or the phandle is inva= lid. + * 0 on full success. + */ +static int get_cpumask_from_ris_phandle(struct device_node *ris, + cpumask_t *affinity) +{ + struct device_node *mpam_device __free(device_node) =3D + of_parse_phandle(ris, "arm,mpam-device", 0); + + if (!mpam_device) { + pr_warn("MPAM: RIS %pOF has neither 'cpus' nor 'arm,mpam-device'\n", + ris); + return -EINVAL; + } + + if (of_device_is_compatible(mpam_device, "cache")) + return get_cpumask_from_cache(mpam_device, affinity); + + if (of_device_is_compatible(mpam_device, "memory")) { + cpumask_or(affinity, affinity, cpu_possible_mask); + return 0; + } + + return -EINVAL; +} + +static int get_cpumask_from_ris(struct device_node *ris, cpumask_t *affini= ty) +{ + int err; + + err =3D get_cpumask_from_ris_cpus(ris, affinity); + if (err !=3D -ENODEV) + return err; + + return get_cpumask_from_ris_phandle(ris, affinity); +} + +/* + * Returns -ENODEV when the parent is just a container (not a recognised d= evice), + * so the caller falls back to the per-RIS description. + */ +static int get_cpumask_from_parent(struct mpam_msc *msc, cpumask_t *affini= ty) +{ + struct device_node *parent __free(device_node) =3D + of_get_parent(msc->pdev->dev.of_node); + + if (parent =3D=3D of_root) { + cpumask_copy(affinity, cpu_possible_mask); + return 0; + } + + if (of_device_is_compatible(parent, "cache")) + return get_cpumask_from_cache(parent, affinity); + + if (of_device_is_compatible(parent, "memory")) { + cpumask_copy(affinity, cpu_possible_mask); + return 0; + } + + return -ENODEV; +} + +/* + * An MSC's CPU affinity is described either by its parent node or, when t= he + * parent is just a container, per-RIS inside the MSC. In the per-RIS case= the + * accessibility is the union of the RIS affinities: every RIS must resolv= e, so + * a single failure clears the mask and stops and the MSC fails to probe r= ather + * than come up with a partial affinity. + */ +static void mpam_dt_update_msc_accessibility(struct mpam_msc *msc) +{ + cpumask_t *affinity =3D &msc->accessibility; + + cpumask_clear(affinity); + + if (get_cpumask_from_parent(msc, affinity) =3D=3D -ENODEV) { + for_each_available_child_of_node_scoped(msc->pdev->dev.of_node, ris) { + if (get_cpumask_from_ris(ris, affinity)) { + cpumask_clear(affinity); + break; + } + } + } +} + /* * An MSC can control traffic from a set of CPUs, but may only be accessib= le * from a (hopefully wider) set of CPUs. The common reason for this is pow= er @@ -2165,8 +2295,6 @@ static int mpam_msc_setup_error_irq(struct mpam_msc *= msc) */ static void update_msc_accessibility(struct mpam_msc *msc) { - struct device *dev =3D &msc->pdev->dev; - struct device_node *parent; u32 affinity_id; int err; =20 @@ -2182,19 +2310,7 @@ static void update_msc_accessibility(struct mpam_msc= *msc) return; } =20 - /* Where an MSC can be accessed from depends on the path to of_node. */ - parent =3D of_get_parent(msc->pdev->dev.of_node); - if (parent =3D=3D of_root) { - cpumask_copy(&msc->accessibility, cpu_possible_mask); - } else { - if (of_device_is_compatible(parent, "cache")) - get_cpumask_from_cache(parent, &msc->accessibility); - else if (of_device_is_compatible(parent, "memory")) - cpumask_copy(&msc->accessibility, cpu_possible_mask); - else - dev_err_once(dev, "Cannot determine accessibility of MSC.\n"); - } - of_node_put(parent); + mpam_dt_update_msc_accessibility(msc); } =20 /* --=20 2.34.1 From nobody Tue Sep 29 06:08:57 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 202254582F9 for ; Tue, 11 Aug 2026 13:37:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455486; cv=none; b=YzAHek+RDBXc3QNjwrZFftj19d4Rh4JlOSYams20iMrYSjilZFytY3yZLrOkCK4lh+ZilUioLIpV0y5S3O9UmlHMh1KDPmA0r/JB7GXJtbsXCDdxsz5eDXyHM47Z7E/p1pxfOCFvHXSs0Aqg1I/g0gjj+cEvhsTdh8OS6wasJpw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786455486; c=relaxed/simple; bh=4J037iW0jgNFIUaDdHihz/OvwcIdw7V7vHWLk2241fU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VNVHl4TmevMAcB5z6bxoTxFpv+Yg4R0/3CiV1bypZ1fG5PfQlHtbnxqP8WBE8TQOwhLid31xjPhT3DOTka4JjTsP+7xfA/lf6xFRvAK236rHX+iHW3tn79M1fqkX/pnXQNixC0g5djpNXDnxMG76BZRLKbDKESSu/V+Ig6h7blg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Z5WHwFkd; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Q01+jpuJ; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Z5WHwFkd"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Q01+jpuJ" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BDWmwN410142 for ; Tue, 11 Aug 2026 13:37:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= IoNgOi7Gt/NIz8sa1CP6cy/ZIgCot/UywicQ+D+OG20=; b=Z5WHwFkdf5S9C+hL ZK4XBa8N3GnKZ6wZkwd7kGuCmMOrDQQCA9nzHFx+t24aRyZEe1FHNBQMLiuQ/lQZ fDvuhkucPTCvNbSoitqLYl2T3gNp5gHE6W3Q25lFNBFqS/emsRZsOZYTyzymk53U w5nmnnfIDrAwTCXEb5rO1Hnagxh2OvJf5LP6VB36+GIrrC6TY1bxltFqSYSKeDi4 cFwPhWibosteAk7/+p1yOsFwb+3W1nh2RUB+1/wfPkGWkuWe10m/1mMI4BkJDIIT pBZQThhPqvPqxVxIzVZuCyATkNx6yvjz2/x4I1REUFj2rfR/HWEGpZj9qLcEEhAf KwXiGQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fyvcra26h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 13:37:49 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2cacf17c7e0so43558505ad.0 for ; Tue, 11 Aug 2026 06:37:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786455469; x=1787060269; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=IoNgOi7Gt/NIz8sa1CP6cy/ZIgCot/UywicQ+D+OG20=; b=Q01+jpuJcfC/j8L9UCBMldxB7qg4iZko/QpfP3RG4EUtI6fwsP3Wi34Js2oBN6VwEk hF93PdshKfz5AYrYsG4Dd+YWGKfbnZnMG92lJVv71tBEy3Eis87ODEAVhgjaHAwgL6TY DFUv9CXWpV+AxGzt+krGTe1dLTj+ELN1w6cNOmsKzgvZmY5HoiMWRFmBYalIHPd5U56t Wn2Uyo9ARFPBM2SyC8yhT1of1vS6hioMT59DFDJIsoTotB1KmWQUMyixPf8h0iaUXazo aWCz7RVjv25gjz26WuznOfCgSNAlulMB9JvlFJgD2opYZIkCL4uOwuy+zK03i8U9ukwD tbrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786455469; x=1787060269; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=IoNgOi7Gt/NIz8sa1CP6cy/ZIgCot/UywicQ+D+OG20=; b=Xe013qURoJcFUwmfkjgwDemh8LgB/O9nP1MF1+eqG6LHl6OrLYw1NHUFLbmO+Ks2/l WK9kj8oA9MRGikZwc/pqKxcThk3cr5yHdsCWk4xB3aPQeoIoibfSoIemT9F11gDiqJdY vHCQltrJsS8KpucuKTWc4ECgfPVJJjIj5B0OCMm6VSL2FdWFY2WvUwcH1aTu5vbhzgbA h9jZWRLhEuisy96+F+wXJ7ITow36ii3q7SlxlfsBn8FZK5B+DiPBRBoTwTOa0kUF5Mh4 tDRXKrdm5JVyn8DCoYjD3C+7aMhA4IOftMiLqH95rIuTvW3JW+6TDPZVmLXYpI4GMU+u T9jg== X-Forwarded-Encrypted: i=1; AHgh+RqzZV5ludN2r9L6EDvEhdrqXu7JRq5e773zTiWda3BF8RlsaDuC+ve3RZ01oxgx9IRrK6TAh8aF0AMq9/k=@vger.kernel.org X-Gm-Message-State: AOJu0YzU1vJTkPn1V39z1YKlFG7u8VUbxb/a5kVOHqerJxdxP3Npwff3 VZgMOLrndO+5NN9seJSHB/oHQlu2ItUgmxSG+FlMg0BWtwVNZh5fxh7mb+r1jxb8XYU1+kP1d9g sE/k0Hrrlc7yXXx4DGoMNJrHGpVpknyxeaxoWKxaD74TnbuEyoEsXxRDHiYAfY+XKVkA= X-Gm-Gg: AR+sD13J/rBx+tBScTGDhn6jrwYlP0rXIp7mNNVf5SOFObKW5vPD7SzwJ5IbCTrK/Cq aT8MmEdoRhGJ8aldBVhWOt0GqbUu6rROsNP6OjOlYYFjrMOC3gDWRxGgjHjnvxmwHBU51qAlQpj mT1XNYnQXEyAIDKx1Lxc4xGPWUwbSekwxOgmv1Vqeenx/b3zGVy78h5BL6Xx2bt5LDnFjCvwccf 8buyjnzu6s0k+uHNJ7E7ukDXirzA1TYUaeNo+QvYWxa7le8l5SPDfYsLvpjAiKpDdFw5ZRvb4Bf dlQA6JEot7rnhdJ0m77q0pl40FMnk6NtJfB8UimZ8fmLjPGepUmQISm/rVjVnc50rIK9Cew/3Cy afK1h1HXvIgOTPg8aVITkiHhNGybReV9fgghi2L7AYIjEvckko2ypcg8s X-Received: by 2002:a17:903:2c10:b0:2cc:307c:51fc with SMTP id d9443c01a7336-2d31792672fmr42113455ad.21.1786455468759; Tue, 11 Aug 2026 06:37:48 -0700 (PDT) X-Received: by 2002:a17:903:2c10:b0:2cc:307c:51fc with SMTP id d9443c01a7336-2d31792672fmr42112435ad.21.1786455468060; Tue, 11 Aug 2026 06:37:48 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d315f4819dsm8360885ad.37.2026.08.11.06.37.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 06:37:47 -0700 (PDT) From: Yin Li Date: Tue, 11 Aug 2026 21:30:44 +0800 Subject: [PATCH DNM RFC 15/15] arm64: dts: qcom: kaanapali: Add MPAM MSC nodes for the L2 caches Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260811-mpam-resctrl-dt-knp-support-v1-15-ea6397bead59@oss.qualcomm.com> References: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> In-Reply-To: <20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com> To: "Rafael J. Wysocki" , Shanker Donthineni , Conor Dooley , Fenghua Yu , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Konrad Dybcio , James Morse , Ben Horgan , Bjorn Andersson , Danilo Krummrich , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, ganapatrao.kulkarni@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, devicetree@vger.kernel.org, driver-core@lists.linux.dev, Srivathsa L Rao , Huang Yiwei , aiqun.yu@oss.qualcomm.com, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786455331; l=2861; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=4J037iW0jgNFIUaDdHihz/OvwcIdw7V7vHWLk2241fU=; b=aJaoYrw9W+mA2/V0kzVcJpwauWAIFZKYoqSpfelZhQsRlyjmZPL3F7nE5RXcGdIQV55guzjjc nWbnib8y0S1BXytBv8z+28xwewiHOvt50T4FGPEVTHOjsarfwWb3E4a X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfXx+RZJQsvM/Dl UIJLoxTwTpbCMX6q3E9U9AVQRI8iYLcxwd7xmskJgfolmYEedDvsfJiuKn1iXylJMp9HNrOpLyS 0cnENebcv5b8+U71rPlrdVhMYIsot7mpvx4nPFz4so8e8unlZnoOrbivrghTBSRsbgClKScGpuZ ISDyqJcVgECByLbR5vc3bhesKl3Zb0UIbYDtgE1ixbhZYXeM+7+uXWHfgW9Wdd9HQc5N/RaYT78 KSCiqXKOzqsuDmSF8EfII2zhnL6MuAZyZMB6D+ZONFE6R+jXlIblp65cayPcNklMH6QIs5XTAcD iD0W/oDx8rDH6pOP6v4DQ2KGPsiDaLN6ptxbZP6ihDxURvOCWAsNvolZgIZDUXPwUKFG9N207rv l5qpyky8g5vys4tocAgEtFNf20UD8q9uoFSv/nsHQ9M0DWvQS4iGlcHUQXrFsM1lKlxKfNrKrmn xukpb/S1zn/7iPN//KA== X-Authority-Analysis: v=2.4 cv=e/A2j6p/ c=1 sm=1 tr=0 ts=6a7b25ad cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=ODdVmvVKQohEaym1G8sA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-GUID: 2AZFY3UzgtwmuD6vSfW0h3AKZr3tNoDi X-Proofpoint-ORIG-GUID: 2AZFY3UzgtwmuD6vSfW0h3AKZr3tNoDi X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDExNCBTYWx0ZWRfX+wguPF/ufyPn 2GmE4p5i3DWouq42DqFUkHyu2b/UbiX9gzr6c+6nAgDXCmyRbiScpEKnYo3dw26IVXYrbzrdO0b 7EaeTvz01NtvC22K5dG/sCHbruT8CUI= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_03,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 phishscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110114 Add an MPAM MSC device node for each L2 cache. Each MSC is nested directly under its L2 cache node so that the cache node is the MSC's parent device and its CPU affinity is derived from that cache. The L2 cache nodes are placed directly under the root node. The root is the root of the physical address space, so each cache node only needs an identity 'ranges' property for its nested MSC's 'reg' to be resolved to a physical address. The two caches use distinct node names (l2-cache-0 and l2-cache-1) since a cache node has no MMIO unit-address of its own. The nodes are disabled by default. Production firmware does not expose MSC register access to the OS, so these nodes can only be enabled on a local test setup where firmware permits direct MMIO access to the MSCs. This DTS is therefore only an example for other platform DT authors and is not intended to be merged. Co-developed-by: Huang Yiwei Signed-off-by: Huang Yiwei Signed-off-by: Yin Li --- arch/arm64/boot/dts/qcom/kaanapali.dtsi | 50 +++++++++++++++++++++++++----= ---- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/= qcom/kaanapali.dtsi index 131fd2a16c54..b1dcb1e9c570 100644 --- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi +++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi @@ -48,12 +48,6 @@ cpu0: cpu@0 { power-domains =3D <&cpu_pd0>, <&scmi_perf 0>; power-domain-names =3D "psci", "perf"; #cooling-cells =3D <2>; - - l2_0: l2-cache { - compatible =3D "cache"; - cache-level =3D <2>; - cache-unified; - }; }; =20 cpu1: cpu@100 { @@ -120,12 +114,6 @@ cpu6: cpu@10000 { power-domains =3D <&cpu_pd6>, <&scmi_perf 1>; power-domain-names =3D "psci", "perf"; #cooling-cells =3D <2>; - - l2_1: l2-cache { - compatible =3D "cache"; - cache-level =3D <2>; - cache-unified; - }; }; =20 cpu7: cpu@10100 { @@ -531,6 +519,44 @@ soccp_smp2p_in: slave-kernel { }; }; =20 + l2_0: l2-cache-0 { + compatible =3D "cache"; + cache-level =3D <2>; + cache-unified; + cache-size =3D <0xc00000>; + ranges; + + #address-cells =3D <2>; + #size-cells =3D <2>; + + msc@19870000 { + compatible =3D "arm,mpam-msc"; + reg =3D <0x0 0x19870000 0x0 0x10000>; + arm,not-ready-us =3D <1>; + status =3D "disabled"; + }; + + }; + + l2_1: l2-cache-1 { + compatible =3D "cache"; + cache-level =3D <2>; + cache-unified; + cache-size =3D <0xc00000>; + ranges; + + #address-cells =3D <2>; + #size-cells =3D <2>; + + msc@1a870000 { + compatible =3D "arm,mpam-msc"; + reg =3D <0x0 0x1a870000 0x0 0x10000>; + arm,not-ready-us =3D <1>; + status =3D "disabled"; + }; + + }; + soc: soc@0 { compatible =3D "simple-bus"; =20 --=20 2.34.1