Linus, please pull this x86 fix from:
git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-fixes2.git for-linus
Thanks,
Ingo
------------------>
Venki Pallipadi (1):
x86, PAT: disable /dev/mem mmap RAM with PAT
arch/x86/mm/pat.c | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index 9851265..e7ca7fc 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -16,6 +16,7 @@
#include <asm/msr.h>
#include <asm/tlbflush.h>
#include <asm/processor.h>
+#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/pat.h>
#include <asm/e820.h>
@@ -477,6 +478,33 @@ pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
return vma_prot;
}
+#ifdef CONFIG_NONPROMISC_DEVMEM
+/* This check is done in drivers/char/mem.c in case of NONPROMISC_DEVMEM*/
+static inline int range_is_allowed(unsigned long pfn, unsigned long size)
+{
+ return 1;
+}
+#else
+static inline int range_is_allowed(unsigned long pfn, unsigned long size)
+{
+ u64 from = ((u64)pfn) << PAGE_SHIFT;
+ u64 to = from + size;
+ u64 cursor = from;
+
+ while (cursor < to) {
+ if (!devmem_is_allowed(pfn)) {
+ printk(KERN_INFO
+ "Program %s tried to access /dev/mem between %Lx->%Lx.\n",
+ current->comm, from, to);
+ return 0;
+ }
+ cursor += PAGE_SIZE;
+ pfn++;
+ }
+ return 1;
+}
+#endif /* CONFIG_NONPROMISC_DEVMEM */
+
int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
unsigned long size, pgprot_t *vma_prot)
{
@@ -485,6 +513,9 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
unsigned long ret_flags;
int retval;
+ if (!range_is_allowed(pfn, size))
+ return 0;
+
if (file->f_flags & O_SYNC) {
flags = _PAGE_CACHE_UC;
}
--
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Tim Tassonis | reiser4 for 2.6.27-rc1 |
| Roland Dreier | Re: Integration of SCST in the mainstream Linux kernel |
| Jarek Poplawski | Re: [BUG] New Kernel Bugs |
git: | |
| Junio C Hamano | Re: Comments on recursive merge.. |
| Ken Pratt | Re: pack operation is thrashing my server |
| Junio C Hamano | [ANNOUNCE] GIT 1.5.4 |
| Chris Hoffman | git-daemon on Windows? |
| Peter Zijlstra | [BUG?] sendfile / distcc |
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Mark Lord | Re: 2.6.25-rc8: FTP transfer errors |
| Ilpo Järvinen | Re: [PATCH 2/4] tcpv6: trivial formatting changes to send_(ack|reset) |
| Richard Stallman | Real men don't attack straw men |
| Diana Eichert | OpenBSD on decTOP? |
| Jeff Ross | U320 Drive on U160 controller? |
| Sebastian Reitenbach | problems with hoststated and relayd |
