Commit 3c845086 authored by Nick Piggin's avatar Nick Piggin Committed by Roland Dreier

IB/ipath: Convert from .nopage to .fault

Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent a2f76cd6
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
#define __IPATH_PKTDBG 0x80 /* print packet data */ #define __IPATH_PKTDBG 0x80 /* print packet data */
/* print process startup (init)/exit messages */ /* print process startup (init)/exit messages */
#define __IPATH_PROCDBG 0x100 #define __IPATH_PROCDBG 0x100
/* print mmap/nopage stuff, not using VDBG any more */ /* print mmap/fault stuff, not using VDBG any more */
#define __IPATH_MMDBG 0x200 #define __IPATH_MMDBG 0x200
#define __IPATH_ERRPKTDBG 0x400 #define __IPATH_ERRPKTDBG 0x400
#define __IPATH_USER_SEND 0x1000 /* use user mode send */ #define __IPATH_USER_SEND 0x1000 /* use user mode send */
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
#define __IPATH_VERBDBG 0x0 /* very verbose debug */ #define __IPATH_VERBDBG 0x0 /* very verbose debug */
#define __IPATH_PKTDBG 0x0 /* print packet data */ #define __IPATH_PKTDBG 0x0 /* print packet data */
#define __IPATH_PROCDBG 0x0 /* process startup (init)/exit messages */ #define __IPATH_PROCDBG 0x0 /* process startup (init)/exit messages */
/* print mmap/nopage stuff, not using VDBG any more */ /* print mmap/fault stuff, not using VDBG any more */
#define __IPATH_MMDBG 0x0 #define __IPATH_MMDBG 0x0
#define __IPATH_EPKTDBG 0x0 /* print ethernet packet data */ #define __IPATH_EPKTDBG 0x0 /* print ethernet packet data */
#define __IPATH_IPATHDBG 0x0 /* Ethernet (IPATH) table dump on */ #define __IPATH_IPATHDBG 0x0 /* Ethernet (IPATH) table dump on */
......
...@@ -1120,33 +1120,24 @@ static int mmap_rcvegrbufs(struct vm_area_struct *vma, ...@@ -1120,33 +1120,24 @@ static int mmap_rcvegrbufs(struct vm_area_struct *vma,
} }
/* /*
* ipath_file_vma_nopage - handle a VMA page fault. * ipath_file_vma_fault - handle a VMA page fault.
*/ */
static struct page *ipath_file_vma_nopage(struct vm_area_struct *vma, static int ipath_file_vma_fault(struct vm_area_struct *vma,
unsigned long address, int *type) struct vm_fault *vmf)
{ {
unsigned long offset = address - vma->vm_start; struct page *page;
struct page *page = NOPAGE_SIGBUS;
void *pageptr;
/* page = vmalloc_to_page((void *)(vmf->pgoff << PAGE_SHIFT));
* Convert the vmalloc address into a struct page.
*/
pageptr = (void *)(offset + (vma->vm_pgoff << PAGE_SHIFT));
page = vmalloc_to_page(pageptr);
if (!page) if (!page)
goto out; return VM_FAULT_SIGBUS;
/* Increment the reference count. */
get_page(page); get_page(page);
if (type) vmf->page = page;
*type = VM_FAULT_MINOR;
out: return 0;
return page;
} }
static struct vm_operations_struct ipath_file_vm_ops = { static struct vm_operations_struct ipath_file_vm_ops = {
.nopage = ipath_file_vma_nopage, .fault = ipath_file_vma_fault,
}; };
static int mmap_kvaddr(struct vm_area_struct *vma, u64 pgaddr, static int mmap_kvaddr(struct vm_area_struct *vma, u64 pgaddr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment