summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 01:02:38 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 01:02:38 +0000
commit08b74a000942a380fe028845f92cd3a0dee827d5 (patch)
treeaa78b4e12607c3e1fcce8d5cc42df4330792f118 /debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch
parentAdding upstream version 4.19.249. (diff)
downloadlinux-08b74a000942a380fe028845f92cd3a0dee827d5.tar.xz
linux-08b74a000942a380fe028845f92cd3a0dee827d5.zip
Adding debian version 4.19.249-2.debian/4.19.249-2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch')
-rw-r--r--debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch
new file mode 100644
index 000000000..12a3a9b1e
--- /dev/null
+++ b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch
@@ -0,0 +1,34 @@
+From 83b4c6d1975b6bbcc60751fc7150c6bda6b460a7 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 11 Mar 2013 21:37:27 +0100
+Subject: [PATCH 217/347] arm/highmem: Flush tlb on unmap
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The tlb should be flushed on unmap and thus make the mapping entry
+invalid. This is only done in the non-debug case which does not look
+right.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/mm/highmem.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c
+index d02f8187b1cc..eb4b225d28c9 100644
+--- a/arch/arm/mm/highmem.c
++++ b/arch/arm/mm/highmem.c
+@@ -112,10 +112,10 @@ void __kunmap_atomic(void *kvaddr)
+ __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE);
+ #ifdef CONFIG_DEBUG_HIGHMEM
+ BUG_ON(vaddr != __fix_to_virt(idx));
+- set_fixmap_pte(idx, __pte(0));
+ #else
+ (void) idx; /* to kill a warning */
+ #endif
++ set_fixmap_pte(idx, __pte(0));
+ kmap_atomic_idx_pop();
+ } else if (vaddr >= PKMAP_ADDR(0) && vaddr < PKMAP_ADDR(LAST_PKMAP)) {
+ /* this address was obtained through kmap_high_get() */
+--
+2.36.1
+