diff --git a/drivers/soc/hisilicon/hisi_mem_ras.c b/drivers/soc/hisilicon/hisi_mem_ras.c index 765132cf1c04cf15c044f3e36c1103957e1d5ac9..05360fde86f8216c8b3fcdbcdf8f09f5ef901422 100644 --- a/drivers/soc/hisilicon/hisi_mem_ras.c +++ b/drivers/soc/hisilicon/hisi_mem_ras.c @@ -43,16 +43,20 @@ static int hisi_mem_get_pcc_chan_id(struct hisi_mem_dev *hdev) struct platform_device *pdev = hdev->pdev; struct acpi_device *adev = ACPI_COMPANION(&pdev->dev); struct hisi_mem_register_ctx ctx = {0}; - acpi_handle handle = adev->handle; acpi_status status; - if (!acpi_has_method(handle, METHOD_NAME__CRS)) { + if (!adev) { + dev_err(&pdev->dev, "ACPI companion missing\n"); + return -ENODEV; + } + + if (!acpi_has_method(adev->handle, METHOD_NAME__CRS)) { dev_err(&pdev->dev, "No _CRS method.\n"); return -ENODEV; } ctx.dev = &pdev->dev; - status = acpi_walk_resources(handle, METHOD_NAME__CRS, + status = acpi_walk_resources(adev->handle, METHOD_NAME__CRS, hisi_mem_get_chan_id_cb, &ctx); if (ACPI_FAILURE(status)) return ctx.err;