Index: sys/amd64/vmm/vmm.c =================================================================== --- sys/amd64/vmm/vmm.c +++ sys/amd64/vmm/vmm.c @@ -1038,7 +1038,7 @@ mm = &vm->mem_maps[i]; if (gpa >= mm->gpa && gpa < mm->gpa + mm->len) { count = vm_fault_quick_hold_pages(&vm->vmspace->vm_map, - trunc_page(gpa), PAGE_SIZE, reqprot, &m, 1); + trunc_page(gpa), PAGE_SIZE, reqprot, &m); break; } } Index: sys/compat/linuxkpi/common/src/linux_page.c =================================================================== --- sys/compat/linuxkpi/common/src/linux_page.c +++ sys/compat/linuxkpi/common/src/linux_page.c @@ -199,7 +199,7 @@ prot = write ? (VM_PROT_READ | VM_PROT_WRITE) : VM_PROT_READ; len = ptoa((vm_offset_t)nr_pages); - count = vm_fault_quick_hold_pages(map, start, len, prot, pages, nr_pages); + count = vm_fault_quick_hold_pages(map, start, len, prot, pages); return (count == -1 ? -EFAULT : nr_pages); } Index: sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c =================================================================== --- sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c +++ sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c @@ -463,7 +463,7 @@ actual_pages = vm_fault_quick_hold_pages(&p->p_vmspace->vm_map, (vm_offset_t)buf, count, - (type == PAGELIST_READ ? VM_PROT_WRITE : 0 ) | VM_PROT_READ, pages, num_pages); + (type == PAGELIST_READ ? VM_PROT_WRITE : 0 ) | VM_PROT_READ, pages); if (actual_pages != num_pages) { vm_page_unhold_pages(pages, actual_pages); Index: sys/dev/cxgbe/tom/t4_cpl_io.c =================================================================== --- sys/dev/cxgbe/tom/t4_cpl_io.c +++ sys/dev/cxgbe/tom/t4_cpl_io.c @@ -2140,7 +2140,7 @@ __func__, (uintmax_t)start, mlen)); npages = vm_fault_quick_hold_pages(map, start, mlen, - VM_PROT_WRITE, pgs, nitems(pgs)); + VM_PROT_WRITE, pgs); if (npages < 0) break; Index: sys/dev/cxgbe/tom/t4_ddp.c =================================================================== --- sys/dev/cxgbe/tom/t4_ddp.c +++ sys/dev/cxgbe/tom/t4_ddp.c @@ -1647,7 +1647,7 @@ ps->pages = (vm_page_t *)(ps + 1); ps->vm_timestamp = map->timestamp; ps->npages = vm_fault_quick_hold_pages(map, start, end - start, - VM_PROT_WRITE, ps->pages, n); + VM_PROT_WRITE, ps->pages); DDP_LOCK(toep); if (ps->npages < 0) { Index: sys/i386/i386/copyout.c =================================================================== --- sys/i386/i386/copyout.c +++ sys/i386/i386/copyout.c @@ -104,8 +104,7 @@ MPASS(plen <= nitems(m)); error = 0; i = vm_fault_quick_hold_pages(&curproc->p_vmspace->vm_map, uva, len, - (write ? VM_PROT_WRITE : VM_PROT_READ) | VM_PROT_QUICK_NOFAULT, - m, nitems(m)); + (write ? VM_PROT_WRITE : VM_PROT_READ) | VM_PROT_QUICK_NOFAULT, m); if (i != plen) return (EFAULT); sched_pin(); Index: sys/kern/kern_physio.c =================================================================== --- sys/kern/kern_physio.c +++ sys/kern/kern_physio.c @@ -157,7 +157,7 @@ if ((npages = vm_fault_quick_hold_pages( &curproc->p_vmspace->vm_map, (vm_offset_t)base, bp->bio_length, - prot, pages, maxpages)) < 0) { + prot, pages)) < 0) { error = EFAULT; goto doerror; } Index: sys/kern/sys_pipe.c =================================================================== --- sys/kern/sys_pipe.c +++ sys/kern/sys_pipe.c @@ -912,7 +912,7 @@ PIPE_UNLOCK(wpipe); i = vm_fault_quick_hold_pages(&curproc->p_vmspace->vm_map, (vm_offset_t)uio->uio_iov->iov_base, size, VM_PROT_READ, - wpipe->pipe_pages.ms, PIPENPAGES); + wpipe->pipe_pages.ms); PIPE_LOCK(wpipe); if (i < 0) { wpipe->pipe_state &= ~PIPE_DIRECTW; Index: sys/kern/vfs_aio.c =================================================================== --- sys/kern/vfs_aio.c +++ sys/kern/vfs_aio.c @@ -1319,8 +1319,7 @@ if (opcode == LIO_READ || opcode == LIO_READV) prot |= VM_PROT_WRITE; /* Less backwards than it looks */ npages = vm_fault_quick_hold_pages(&curproc->p_vmspace->vm_map, - (vm_offset_t)buf, bp->bio_length, prot, pages, - atop(maxphys) + 1); + (vm_offset_t)buf, bp->bio_length, prot, pages); if (npages < 0) { if (pbuf != NULL) uma_zfree(pbuf_zone, pbuf); Index: sys/kern/vfs_bio.c =================================================================== --- sys/kern/vfs_bio.c +++ sys/kern/vfs_bio.c @@ -5043,7 +5043,7 @@ if (bp->b_iocmd == BIO_READ) prot |= VM_PROT_WRITE; /* Less backwards than it looks */ pidx = vm_fault_quick_hold_pages(&curproc->p_vmspace->vm_map, - (vm_offset_t)uaddr, len, prot, bp->b_pages, PBUF_PAGES); + (vm_offset_t)uaddr, len, prot, bp->b_pages); if (pidx < 0) return (-1); bp->b_bufsize = len; Index: sys/kern/vfs_vnops.c =================================================================== --- sys/kern/vfs_vnops.c +++ sys/kern/vfs_vnops.c @@ -1400,7 +1400,7 @@ * page. +2 accounts for such a situation. */ cnt = vm_fault_quick_hold_pages(&td->td_proc->p_vmspace->vm_map, - addr, len, prot, ma, io_hold_cnt + 2); + addr, len, prot, ma); if (cnt == -1) { error = EFAULT; break; Index: sys/net/bpf_zerocopy.c =================================================================== --- sys/net/bpf_zerocopy.c +++ sys/net/bpf_zerocopy.c @@ -161,7 +161,7 @@ vm_page_t pp; if (vm_fault_quick_hold_pages(map, uaddr, PAGE_SIZE, VM_PROT_READ | - VM_PROT_WRITE, &pp, 1) < 0) + VM_PROT_WRITE, &pp) < 0) return (NULL); sf = sf_buf_alloc(pp, SFB_NOWAIT); if (sf == NULL) { Index: sys/netinet/tcp_usrreq.c =================================================================== --- sys/netinet/tcp_usrreq.c +++ sys/netinet/tcp_usrreq.c @@ -2636,8 +2636,7 @@ vm_page_t ma[nheld]; if (vm_fault_quick_hold_pages( &curproc->p_vmspace->vm_map, (vm_offset_t)sbp, - outsbsz, VM_PROT_READ | VM_PROT_WRITE, ma, - nheld) < 0) { + outsbsz, VM_PROT_READ | VM_PROT_WRITE, ma) < 0) { error = EFAULT; break; } Index: sys/vm/vm_extern.h =================================================================== --- sys/vm/vm_extern.h +++ sys/vm/vm_extern.h @@ -94,7 +94,7 @@ int vm_fault_disable_pagefaults(void); void vm_fault_enable_pagefaults(int save); int vm_fault_quick_hold_pages(vm_map_t map, vm_offset_t addr, vm_size_t len, - vm_prot_t prot, vm_page_t *ma, int max_count); + vm_prot_t prot, vm_page_t *ma); int vm_fault_trap(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, int fault_flags, int *signo, int *ucode); int vm_forkproc(struct thread *, struct proc *, struct thread *, Index: sys/vm/vm_fault.c =================================================================== --- sys/vm/vm_fault.c +++ sys/vm/vm_fault.c @@ -1889,7 +1889,7 @@ */ int vm_fault_quick_hold_pages(vm_map_t map, vm_offset_t addr, vm_size_t len, - vm_prot_t prot, vm_page_t *ma, int max_count) + vm_prot_t prot, vm_page_t *ma) { vm_offset_t end, va; vm_page_t *mp; @@ -1904,8 +1904,6 @@ if (!vm_map_range_valid(map, addr, end)) return (-1); - if (atop(end - addr) > max_count) - panic("vm_fault_quick_hold_pages: count > max_count"); count = atop(end - addr); /*