Skip to contentSkip to conversation

Patch "iommu/amd: Handle large pages correctly in free_pagetable" has been added to the 4.0-stable tree

PATCH [email protected] 1 participant 1 message Jul 8, 2015

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

iommu/amd: Handle large pages correctly in free_pagetable

to the 4.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
iommu-amd-handle-large-pages-correctly-in-free_pagetable.patch
and it can be found in the queue-4.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 0b3fff54bc01e8e6064d222a33e6fa7adabd94cd Mon Sep 17 00:00:00 2001

From: Joerg Roedel <[email protected]>
Date: Thu, 18 Jun 2015 10:48:34 +0200
Subject: iommu/amd: Handle large pages correctly in free_pagetable

From: Joerg Roedel <[email protected]>

commit 0b3fff54bc01e8e6064d222a33e6fa7adabd94cd upstream.

Make sure that we are skipping over large PTEs while walking the page-table tree.

Fixes 5c34c403b723 ("iommu/amd: Fix memory leak in free_pagetable")
---
 drivers/iommu/amd_iommu.c |    6 ++++++
 1 file changed, 6 insertions(+)
drivers/iommu/amd_iommu.c +6 -0
@@ -1870,9 +1870,15 @@ static void free_pt_##LVL (unsigned long
 	pt = (u64 *)__pt;					\
 								\
 	for (i = 0; i < 512; ++i) {				\
+		/* PTE present? */				\
 		if (!IOMMU_PTE_PRESENT(pt[i]))			\
 			continue;				\
 								\
+		/* Large PTE? */				\
+		if (PM_PTE_LEVEL(pt[i]) == 0 ||			\
+		    PM_PTE_LEVEL(pt[i]) == 7)			\
+			continue;				\
+								\
 		p = (unsigned long)IOMMU_PTE_PAGE(pt[i]);	\
 		FN(p);						\
 	}							\

Patches currently in stable-queue which might be from [email protected] are

queue-4.0/iommu-amd-handle-large-pages-correctly-in-free_pagetable.patch queue-4.0/iommu-arm-smmu-fix-broken-atos-check.patch