patches-3.6.11-rt28.tar.xz
md5sum:
be432d1e30ccd5223bcccdde793f6645 patches-3.6.11-rt28.tar.xz
No announce. Adds a __kmap_prot() for PREEMPT_RT_FULL
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
diff --git a/localversion.patch b/localversion.patch
index 115d0b3..cc0efea 100644
--- a/localversion.patch
+++ b/localversion.patch
@@ -14,4 +14,4 @@
--- /dev/null
+++ linux-stable/localversion-rt
@@ -0,0 +1 @@
-+-rt27
++-rt28
diff --git a/x86-highmem-make-it-work.patch b/x86-highmem-make-it-work.patch
index b40bba2..5c8bc94 100644
--- a/x86-highmem-make-it-work.patch
+++ b/x86-highmem-make-it-work.patch
@@ -7,10 +7,10 @@
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/x86/include/asm/highmem.h | 23 +++++++++++++++++++++++
- arch/x86/mm/highmem_32.c | 2 ++
+ arch/x86/mm/highmem_32.c | 12 ++++++++++++
include/linux/highmem.h | 2 ++
mm/highmem.c | 21 +++++++++++++++++----
- 4 files changed, 44 insertions(+), 4 deletions(-)
+ 4 files changed, 54 insertions(+), 4 deletions(-)
Index: linux-stable/arch/x86/include/asm/highmem.h
===================================================================
@@ -60,15 +60,25 @@
===================================================================
--- linux-stable.orig/arch/x86/mm/highmem_32.c
+++ linux-stable/arch/x86/mm/highmem_32.c
-@@ -21,6 +21,7 @@ void kunmap(struct page *page)
+@@ -21,6 +21,17 @@ void kunmap(struct page *page)
}
EXPORT_SYMBOL(kunmap);
++#ifdef CONFIF_PREEMPT_RT_FULL
++void *__kmap_prot(struct page *page, pgprot_t prot)
++{
++ might_sleep();
++ if (!PageHighMem(page))
++ return page_address(page);
++ return kmap_high_prot(page, prot);
++}
++#endif
++
+#ifndef CONFIG_PREEMPT_RT_FULL
/*
* kmap_atomic/kunmap_atomic is significantly faster than kmap/kunmap because
* no global lock is needed and because the kmap code must perform a global TLB
-@@ -115,6 +116,7 @@ struct page *kmap_atomic_to_page(void *p
+@@ -115,6 +126,7 @@ struct page *kmap_atomic_to_page(void *p
return pte_page(*pte);
}
EXPORT_SYMBOL(kmap_atomic_to_page);