Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

IB/ipath: Convert from .nopage to .fault

parent a2f76cd6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@
#define __IPATH_PKTDBG      0x80	/* print packet data */
/* print process startup (init)/exit messages */
#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_ERRPKTDBG   0x400
#define __IPATH_USER_SEND   0x1000	/* use user mode send */
@@ -81,7 +81,7 @@
#define __IPATH_VERBDBG   0x0	/* very verbose debug */
#define __IPATH_PKTDBG    0x0	/* print packet data */
#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_EPKTDBG   0x0	/* print ethernet packet data */
#define __IPATH_IPATHDBG  0x0	/* Ethernet (IPATH) table dump on */
+10 −19
Original line number Diff line number Diff line
@@ -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,
					  unsigned long address, int *type)
static int ipath_file_vma_fault(struct vm_area_struct *vma,
					struct vm_fault *vmf)
{
	unsigned long offset = address - vma->vm_start;
	struct page *page = NOPAGE_SIGBUS;
	void *pageptr;
	struct page *page;

	/*
	 * Convert the vmalloc address into a struct page.
	 */
	pageptr = (void *)(offset + (vma->vm_pgoff << PAGE_SHIFT));
	page = vmalloc_to_page(pageptr);
	page = vmalloc_to_page((void *)(vmf->pgoff << PAGE_SHIFT));
	if (!page)
		goto out;

	/* Increment the reference count. */
		return VM_FAULT_SIGBUS;
	get_page(page);
	if (type)
		*type = VM_FAULT_MINOR;
out:
	return page;
	vmf->page = page;

	return 0;
}

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,