Skip to contentSkip to conversation

Patch "iommu/arm-smmu-v3: Clear prior settings when updating STEs" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Nov 9, 2017

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/arm-smmu-v3: Clear prior settings when updating STEs

to the 4.9-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-arm-smmu-v3-clear-prior-settings-when-updating-stes.patch
and it can be found in the queue-4.9 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 foo@baz Thu Nov 9 09:48:01 CET 2017

From: Nate Watterson <[email protected]>
Date: Tue, 20 Dec 2016 23:11:48 -0500
Subject: iommu/arm-smmu-v3: Clear prior settings when updating STEs

From: Nate Watterson <[email protected]>

[ Upstream commit 810871c57011eb3e89e6768932757f169d666cd2 ]

To prevent corruption of the stage-1 context pointer field when updating STEs, rebuild the entire containing dword instead of clearing individual fields.

---
 drivers/iommu/arm-smmu-v3.c |   10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)
drivers/iommu/arm-smmu-v3.c +2 -8
@@ -1040,13 +1040,8 @@ static void arm_smmu_write_strtab_ent(st
 		}
 	}
 
-	/* Nuke the existing Config, as we're going to rewrite it */
-	val &= ~(STRTAB_STE_0_CFG_MASK << STRTAB_STE_0_CFG_SHIFT);
-
-	if (ste->valid)
-		val |= STRTAB_STE_0_V;
-	else
-		val &= ~STRTAB_STE_0_V;
+	/* Nuke the existing STE_0 value, as we're going to rewrite it */
+	val = ste->valid ? STRTAB_STE_0_V : 0;
 
 	if (ste->bypass) {
 		val |= disable_bypass ? STRTAB_STE_0_CFG_ABORT
@@ -1081,7 +1076,6 @@ static void arm_smmu_write_strtab_ent(st
 		val |= (ste->s1_cfg->cdptr_dma & STRTAB_STE_0_S1CTXPTR_MASK
 		        << STRTAB_STE_0_S1CTXPTR_SHIFT) |
 			STRTAB_STE_0_CFG_S1_TRANS;
-
 	}
 
 	if (ste->s2_cfg) {

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

queue-4.9/iommu-arm-smmu-v3-clear-prior-settings-when-updating-stes.patch