[PATCH 2/3] perf/arm_cspmu: nvidia: handle empty resource list in PCIE-TGT init

Besar Wicaksono bwicaksono at nvidia.com
Mon May 11 15:09:26 PDT 2026



> -----Original Message-----
> From: Saurav Sachidanand <sauravsc at amazon.com>
> Sent: Monday, May 11, 2026 4:09 PM
> To: Will Deacon <will at kernel.org>
> Cc: Mark Rutland <mark.rutland at arm.com>; Besar Wicaksono
> <bwicaksono at nvidia.com>; Ilkka Koskinen
> <ilkka at os.amperecomputing.com>; Jon Hunter <jonathanh at nvidia.com>;
> linux-arm-kernel at lists.infradead.org; linux-perf-users at vger.kernel.org; linux-
> kernel at vger.kernel.org; aghayev at amazon.com; juew at amazon.com; Saurav
> Sachidanand <sauravsc at amazon.com>
> Subject: [PATCH 2/3] perf/arm_cspmu: nvidia: handle empty resource list in
> PCIE-TGT init
> 
> External email: Use caution opening links or attachments
> 
> 
> When acpi_dev_get_memory_resources() returns success but the resource
> list is empty (rentry is NULL), addr_filter_reg remains NULL from
> devm_kzalloc. Since IS_ERR(NULL) is false, the function proceeds
> without error and later dereferences the NULL pointer in
> pcie_tgt_pmu_config_addr_filter().
> 
> Set addr_filter_reg to ERR_PTR(-ENODEV) when the resource list is
> empty so the existing IS_ERR check catches it.
> 
> Fixes: 3dd73022306b ("perf/arm_cspmu: nvidia: Add Tegra410 PCIE-TGT
> PMU")
> Signed-off-by: Saurav Sachidanand <sauravsc at amazon.com>
> ---
>  drivers/perf/arm_cspmu/nvidia_cspmu.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/perf/arm_cspmu/nvidia_cspmu.c
> b/drivers/perf/arm_cspmu/nvidia_cspmu.c
> index bac83e424d6dc..bae722e263e91 100644
> --- a/drivers/perf/arm_cspmu/nvidia_cspmu.c
> +++ b/drivers/perf/arm_cspmu/nvidia_cspmu.c
> @@ -555,14 +555,16 @@ static int pcie_tgt_init_data(struct arm_cspmu
> *cspmu)
> 
>         rentry = list_first_entry_or_null(
>                 &resource_list, struct resource_entry, node);
> -       if (rentry) {
> +       if (rentry)
>                 data->addr_filter_reg = devm_ioremap_resource(dev, rentry->res);
> -               ret = 0;
> -       }
> +       else
> +               data->addr_filter_reg = ERR_PTR(-ENODEV);
> 
>         if (IS_ERR(data->addr_filter_reg)) {
>                 dev_err(dev, "failed to get address filter resource\n");
>                 ret = PTR_ERR(data->addr_filter_reg);
> +       } else {

Thanks for fixing.
Reviewed-by: Besar Wicaksono <bwicaksono at nvidia.com>


> +               ret = 0;
>         }
> 
>         acpi_dev_free_resource_list(&resource_list);
> --
> 2.47.3




More information about the linux-arm-kernel mailing list