IB/ipath: Convert from .nopage to .fault
Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
a2f76cd69f
commit
3c8450860b
|
@ -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 @@
|
||||||
#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 @@ bail:
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 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,
|
||||||
|
|
Loading…
Reference in New Issue