]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.14.98/iommu-vt-d-fix-memory-leak-in-intel_iommu_put_resv_regions.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.14.98 / iommu-vt-d-fix-memory-leak-in-intel_iommu_put_resv_regions.patch
CommitLineData
ed43125d
GKH
1From 198bc3252ea3a45b0c5d500e6a5b91cfdd08f001 Mon Sep 17 00:00:00 2001
2From: Gerald Schaefer <gerald.schaefer@de.ibm.com>
3Date: Wed, 16 Jan 2019 20:11:44 +0100
4Subject: iommu/vt-d: Fix memory leak in intel_iommu_put_resv_regions()
5
6From: Gerald Schaefer <gerald.schaefer@de.ibm.com>
7
8commit 198bc3252ea3a45b0c5d500e6a5b91cfdd08f001 upstream.
9
10Commit 9d3a4de4cb8d ("iommu: Disambiguate MSI region types") changed
11the reserved region type in intel_iommu_get_resv_regions() from
12IOMMU_RESV_RESERVED to IOMMU_RESV_MSI, but it forgot to also change
13the type in intel_iommu_put_resv_regions().
14
15This leads to a memory leak, because now the check in
16intel_iommu_put_resv_regions() for IOMMU_RESV_RESERVED will never
17be true, and no allocated regions will be freed.
18
19Fix this by changing the region type in intel_iommu_put_resv_regions()
20to IOMMU_RESV_MSI, matching the type of the allocated regions.
21
22Fixes: 9d3a4de4cb8d ("iommu: Disambiguate MSI region types")
23Cc: <stable@vger.kernel.org> # v4.11+
24Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
25Reviewed-by: Eric Auger <eric.auger@redhat.com>
26Signed-off-by: Joerg Roedel <jroedel@suse.de>
27Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
28
29---
30 drivers/iommu/intel-iommu.c | 2 +-
31 1 file changed, 1 insertion(+), 1 deletion(-)
32
33--- a/drivers/iommu/intel-iommu.c
34+++ b/drivers/iommu/intel-iommu.c
35@@ -5210,7 +5210,7 @@ static void intel_iommu_put_resv_regions
36 struct iommu_resv_region *entry, *next;
37
38 list_for_each_entry_safe(entry, next, head, list) {
39- if (entry->type == IOMMU_RESV_RESERVED)
40+ if (entry->type == IOMMU_RESV_MSI)
41 kfree(entry);
42 }
43 }