summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenzo Pieralisi2019-07-22 18:25:48 +0200
committerGreg Kroah-Hartman2019-08-16 10:12:48 +0200
commitb1689742ff4ad874a4df3ffc01b4315e6354980f (patch)
treee2fdf543dee59c06ced2690b31ee7b74ff6c1dbe
parentdrbd: dynamically allocate shash descriptor (diff)
downloadkernel-qcow2-linux-b1689742ff4ad874a4df3ffc01b4315e6354980f.tar.gz
kernel-qcow2-linux-b1689742ff4ad874a4df3ffc01b4315e6354980f.tar.xz
kernel-qcow2-linux-b1689742ff4ad874a4df3ffc01b4315e6354980f.zip
ACPI/IORT: Fix off-by-one check in iort_dev_find_its_id()
[ Upstream commit 5a46d3f71d5e5a9f82eabc682f996f1281705ac7 ] Static analysis identified that index comparison against ITS entries in iort_dev_find_its_id() is off by one. Update the comparison condition and clarify the resulting error message. Fixes: 4bf2efd26d76 ("ACPI: Add new IORT functions to support MSI domain handling") Link: https://lore.kernel.org/linux-arm-kernel/20190613065410.GB16334@mwanda/ Reviewed-by: Hanjun Guo <guohanjun@huawei.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Dan Carpenter <dan.carpenter@oracle.com> Cc: Will Deacon <will@kernel.org> Cc: Hanjun Guo <guohanjun@huawei.com> Cc: Sudeep Holla <sudeep.holla@arm.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/acpi/arm64/iort.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
index 43c2615434b4..e11b5da6f828 100644
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@ -616,8 +616,8 @@ static int iort_dev_find_its_id(struct device *dev, u32 req_id,
/* Move to ITS specific data */
its = (struct acpi_iort_its_group *)node->node_data;
- if (idx > its->its_count) {
- dev_err(dev, "requested ITS ID index [%d] is greater than available [%d]\n",
+ if (idx >= its->its_count) {
+ dev_err(dev, "requested ITS ID index [%d] overruns ITS entries [%d]\n",
idx, its->its_count);
return -ENXIO;
}