Commit 425ab036 authored by Hanjun Guo's avatar Hanjun Guo Committed by Jassi Brar
Browse files

mailbox: pcc: Put the PCCT table for error path



The acpi_get_table() should be coupled with acpi_put_table() if
the mapped table is not used at runtime to release the table
mapping.

In acpi_pcc_probe(), the PCCT table entries will be used as private
data for communication chan at runtime, but the table should be put
for error path.

Signed-off-by: default avatarHanjun Guo <guohanjun@huawei.com>
Signed-off-by: default avatarJassi Brar <jaswinder.singh@linaro.org>
parent c3917df5
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -457,14 +457,17 @@ static int __init acpi_pcc_probe(void)
			pr_warn("Error parsing PCC subspaces from PCCT\n");
		else
			pr_warn("Invalid PCCT: %d PCC subspaces\n", count);
		return -EINVAL;

		rc = -EINVAL;
		goto err_put_pcct;
	}

	pcc_mbox_channels = kcalloc(count, sizeof(struct mbox_chan),
				    GFP_KERNEL);
	if (!pcc_mbox_channels) {
		pr_err("Could not allocate space for PCC mbox channels\n");
		return -ENOMEM;
		rc = -ENOMEM;
		goto err_put_pcct;
	}

	pcc_doorbell_vaddr = kcalloc(count, sizeof(void *), GFP_KERNEL);
@@ -535,6 +538,8 @@ err_free_db_vaddr:
	kfree(pcc_doorbell_vaddr);
err_free_mbox:
	kfree(pcc_mbox_channels);
err_put_pcct:
	acpi_put_table(pcct_tbl);
	return rc;
}