aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/netmap
diff options
context:
space:
mode:
authorJeff Roberson <jeff@FreeBSD.org>2019-12-22 06:56:44 +0000
committerJeff Roberson <jeff@FreeBSD.org>2019-12-22 06:56:44 +0000
commit3cf3b4e6419d14ed25c0b67b84763b3be937c8b5 (patch)
tree2e580af663c9ad79e336380280fddd5e5ad0219b /sys/dev/netmap
parentffac39deae0a2e50aa8d1197d15b8d0bb7e778fd (diff)
Notes
Diffstat (limited to 'sys/dev/netmap')
-rw-r--r--sys/dev/netmap/netmap_freebsd.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/dev/netmap/netmap_freebsd.c b/sys/dev/netmap/netmap_freebsd.c
index 2580144ab7fe4..e37815dc88d52 100644
--- a/sys/dev/netmap/netmap_freebsd.c
+++ b/sys/dev/netmap/netmap_freebsd.c
@@ -1022,12 +1022,10 @@ netmap_dev_pager_fault(vm_object_t object, vm_ooffset_t offset,
vm_paddr_t paddr;
vm_page_t page;
vm_memattr_t memattr;
- vm_pindex_t pidx;
nm_prdis("object %p offset %jd prot %d mres %p",
object, (intmax_t)offset, prot, mres);
memattr = object->memattr;
- pidx = OFF_TO_IDX(offset);
paddr = netmap_mem_ofstophys(na->nm_mem, offset);
if (paddr == 0)
return VM_PAGER_FAIL;
@@ -1052,9 +1050,8 @@ netmap_dev_pager_fault(vm_object_t object, vm_ooffset_t offset,
VM_OBJECT_WUNLOCK(object);
page = vm_page_getfake(paddr, memattr);
VM_OBJECT_WLOCK(object);
- vm_page_free(*mres);
+ vm_page_replace(page, object, (*mres)->pindex, *mres);
*mres = page;
- vm_page_insert(page, object, pidx);
}
vm_page_valid(page);
return (VM_PAGER_OK);