Matt Fleming 52f948
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Matt Fleming 52f948
Date: Mon, 11 Mar 2013 21:37:27 +0100
Matt Fleming 52f948
Subject: arm/highmem: Flush tlb on unmap
Daniel Wagner c00dcb
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
Daniel Wagner c00dcb
Git-commit: da77ceac3d20f27310a07a7c346a4ee6b40d6c28
Matt Fleming 52f948
Patch-mainline: Queued in subsystem maintainer repository
Matt Fleming 52f948
References: SLE Realtime Extension
Matt Fleming 52f948
Matt Fleming 52f948
The tlb should be flushed on unmap and thus make the mapping entry
Matt Fleming 52f948
invalid. This is only done in the non-debug case which does not look
Matt Fleming 52f948
right.
Matt Fleming 52f948
Matt Fleming 52f948
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Matt Fleming 52f948
Signed-off-by: Daniel Wagner <dwagner@suse.de>
Matt Fleming 52f948
---
Matt Fleming 52f948
 arch/arm/mm/highmem.c |    2 +-
Matt Fleming 52f948
 1 file changed, 1 insertion(+), 1 deletion(-)
Matt Fleming 52f948
Matt Fleming 52f948
--- a/arch/arm/mm/highmem.c
Matt Fleming 52f948
+++ b/arch/arm/mm/highmem.c
Matt Fleming 52f948
@@ -109,10 +109,10 @@ void __kunmap_atomic(void *kvaddr)
Matt Fleming 52f948
 			__cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE);
Matt Fleming 52f948
 #ifdef CONFIG_DEBUG_HIGHMEM
Matt Fleming 52f948
 		BUG_ON(vaddr != __fix_to_virt(idx));
Matt Fleming 52f948
-		set_fixmap_pte(idx, __pte(0));
Matt Fleming 52f948
 #else
Matt Fleming 52f948
 		(void) idx;  /* to kill a warning */
Matt Fleming 52f948
 #endif
Matt Fleming 52f948
+		set_fixmap_pte(idx, __pte(0));
Matt Fleming 52f948
 		kmap_atomic_idx_pop();
Matt Fleming 52f948
 	} else if (vaddr >= PKMAP_ADDR(0) && vaddr < PKMAP_ADDR(LAST_PKMAP)) {
Matt Fleming 52f948
 		/* this address was obtained through kmap_high_get() */