[PATCH 09/33] ACPI / MPAM: Parse the MPAM table

Ben Horgan ben.horgan at arm.com
Wed Nov 12 06:55:47 PST 2025


Hi Shaopeng,

On 11/12/25 07:01, Shaopeng Tan (Fujitsu) wrote:
> Hello Ben,
> 
>> From: James Morse <james.morse at arm.com>
>>
>> Add code to parse the arm64 specific MPAM table, looking up the cache level
>> from the PPTT and feeding the end result into the MPAM driver.
>>
>> This happens in two stages. Platform devices are created first for the MSC
>> devices. Once the driver probes it calls acpi_mpam_parse_resources() to
>> discover the RIS entries the MSC contains.
>>
>> For now the MPAM hook mpam_ris_create() is stubbed out, but will update the
>> MPAM driver with optional discovered data about the RIS entries.
>>
>> CC: Carl Worth <carl at os.amperecomputing.com>
>> Link: https://developer.arm.com/documentation/den0065/3-0bet/?lang=en
>> Reviewed-by: Lorenzo Pieralisi <lpieralisi at kernel.org>
>> Tested-by: Fenghua Yu <fenghuay at nvidia.com>
>> Tested-by: Shaopeng Tan <tan.shaopeng at jp.fujitsu.com>
>> Tested-by: Peter Newman <peternewman at google.com>
>> Signed-off-by: James Morse <james.morse at arm.com>
>> Signed-off-by: Ben Horgan <ben.horgan at arm.com>

>> +static struct platform_device * __init acpi_mpam_parse_msc(struct
>> +acpi_mpam_msc_node *tbl_msc) {
>> +	struct platform_device *pdev __free(platform_device_put) =
>> +		platform_device_alloc("mpam_msc", tbl_msc->identifier);
>> +	int next_res = 0, next_prop = 0, err;
>> +	/* pcc, nrdy, affinity and a sentinel */
>> +	struct property_entry props[4] = { 0 };
>> +	/* mmio, 2xirq, no sentinel. */
>> +	struct resource res[3] = { 0 };
>> +	struct acpi_device *companion;
>> +	enum mpam_msc_iface iface;
>> +	char uid[16];
>> +	u32 acpi_id;
>> +
>> +	if (!pdev)
>> +		return ERR_PTR(-ENOMEM);
>> +
>> +	/* Some power management is described in the namespace: */
>> +	err = snprintf(uid, sizeof(uid), "%u", tbl_msc->identifier);
> 
> It's a bit strange to store the uid length in the variable err.

A little, yes. The value is only used for error checking and it's not
that uncommon so I'll leave it as is.

linux$ git grep 'err = snprintf' | wc -l
17

> Reviewed-by: Shaopeng Tan <tan.shaopeng at jp.fujitsu.com>
> 

Thanks!
Thanks,

Ben




More information about the linux-arm-kernel mailing list