Commit 8e3f3c06 authored by Lorenzo Pieralisi's avatar Lorenzo Pieralisi Committed by Greg Kroah-Hartman

ACPI/IORT: Fix iort_get_platform_device_domain() uninitialized pointer value

[ Upstream commit ea2412dc ]

Running the Clang static analyzer on IORT code detected the following
error:

Logic error: Branch condition evaluates to a garbage value

in

iort_get_platform_device_domain()

If the named component associated with a given device has no IORT
mappings, iort_get_platform_device_domain() exits its MSI mapping loop
with msi_parent pointer containing garbage, which can lead to erroneous
code path execution.

Initialize the msi_parent pointer, fixing the bug.

Fixes: d4f54a18 ("ACPI: platform: setup MSI domain for ACPI based
platform device")
Reported-by: default avatarPatrick Bellasi <patrick.bellasi@arm.com>
Reviewed-by: default avatarHanjun Guo <hanjun.guo@linaro.org>
Acked-by: default avatarWill Deacon <will.deacon@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 9407fd14
...@@ -547,7 +547,7 @@ struct irq_domain *iort_get_device_domain(struct device *dev, u32 req_id) ...@@ -547,7 +547,7 @@ struct irq_domain *iort_get_device_domain(struct device *dev, u32 req_id)
*/ */
static struct irq_domain *iort_get_platform_device_domain(struct device *dev) static struct irq_domain *iort_get_platform_device_domain(struct device *dev)
{ {
struct acpi_iort_node *node, *msi_parent; struct acpi_iort_node *node, *msi_parent = NULL;
struct fwnode_handle *iort_fwnode; struct fwnode_handle *iort_fwnode;
struct acpi_iort_its_group *its; struct acpi_iort_its_group *its;
int i; int i;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment