+ add-nopfn_refault-result-from-vm_ops-nopfn.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     Add NOPFN_REFAULT result from vm_ops->nopfn()
has been added to the -mm tree.  Its filename is
     add-nopfn_refault-result-from-vm_ops-nopfn.patch

*** Remember to use Documentation/SubmitChecklist when testing your code ***

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: Add NOPFN_REFAULT result from vm_ops->nopfn()
From: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>

Add a NOPFN_REFAULT return code for vm_ops->nopfn() equivalent to
NOPAGE_REFAULT for vmops->nopage() indicating that the handler requests a
re-execution of the faulting instruction

Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd.bergmann@xxxxxxxxxx>
Cc: Hugh Dickins <hugh@xxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 include/linux/mm.h |    1 +
 mm/memory.c        |    6 ++++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff -puN include/linux/mm.h~add-nopfn_refault-result-from-vm_ops-nopfn include/linux/mm.h
--- a/include/linux/mm.h~add-nopfn_refault-result-from-vm_ops-nopfn
+++ a/include/linux/mm.h
@@ -638,6 +638,7 @@ static inline int page_mapped(struct pag
  */
 #define NOPFN_SIGBUS	((unsigned long) -1)
 #define NOPFN_OOM	((unsigned long) -2)
+#define NOPFN_REFAULT	((unsigned long) -3)
 
 /*
  * Different kinds of faults, as returned by handle_mm_fault().
diff -puN mm/memory.c~add-nopfn_refault-result-from-vm_ops-nopfn mm/memory.c
--- a/mm/memory.c~add-nopfn_refault-result-from-vm_ops-nopfn
+++ a/mm/memory.c
@@ -2357,10 +2357,12 @@ static noinline int do_no_pfn(struct mm_
 	BUG_ON(is_cow_mapping(vma->vm_flags));
 
 	pfn = vma->vm_ops->nopfn(vma, address & PAGE_MASK);
-	if (pfn == NOPFN_OOM)
+	if (unlikely(pfn == NOPFN_OOM))
 		return VM_FAULT_OOM;
-	if (pfn == NOPFN_SIGBUS)
+	else if (unlikely(pfn == NOPFN_SIGBUS))
 		return VM_FAULT_SIGBUS;
+	else if (unlikely(pfn == NOPFN_REFAULT))
+		return VM_FAULT_MINOR;
 
 	page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
 
_

Patches currently in -mm which might be from benh@xxxxxxxxxxxxxxxxxxx are

enable-mouse-button-23-emulation-for-x86-macs.patch
x86-fix-vdso-mapping-for-aout-executables.patch
add-install_special_mapping.patch
i386-vdso-use-install_special_mapping.patch
x86_64-ia32-vdso-use-install_special_mapping.patch
powerpc-vdso-use-install_special_mapping.patch
macintosh-mangle-caps-lock-events-on-adb-keyboards.patch
git-powerpc.patch
fix-ppc64s-writing-to-struct-file_operations.patch
powerpc-rtas-msi-support.patch
arch-powerpc-user-array_size-macro-when-appropriate.patch
arch-ppc-user-array_size-macro-when-appropriate.patch
windfarm-dont-die-on-suspend-thread-signal.patch
driver-core-per-subsystem-multithreaded-probing.patch
powerpc-make-it-compile.patch
add-vm_insert_pfn.patch
add-nopfn_refault-result-from-vm_ops-nopfn.patch
mm-vm_insert_pfn.patch
mm-vm_insert_pfn-tidy.patch
proc-remove-useless-and-buggy-nlink-settings.patch
dynamic-kernel-command-line-common.patch
dynamic-kernel-command-line-powerpc.patch
dynamic-kernel-command-line-ppc.patch
sysctl-mac_hid-remove-unnecessary-insert_at_head-flag.patch
sysctl-ipmi-remove-unnecessary-insert_at_head-flag.patch
sysctl-c99-convert-ctl_tables-in-arch-powerpc-kernel-idlec.patch
sysctl-c99-convert-ctl_tables-entries-in-arch-ppc-kernel-ppc_htabc.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux