diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index 2de6a3bd2bc3..39631a6fbe9c 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -2420,13 +2420,13 @@ SYSCTL_NODE(_vm, OID_AUTO, swap_info, CTLFLAG_RD, sysctl_vm_swap_info,
  *	if the VM object has any swap use at all the associated map entries
  *	count for at least 1 swap page.
  */
-vm_offset_t
+long
 vmspace_swap_count(struct vmspace *vmspace)
 {
 	vm_map_t map;
 	vm_map_entry_t cur;
 	vm_object_t object;
-	vm_offset_t count, n;
+	long count, n;
 
 	map = &vmspace->vm_map;
 	count = 0;
diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h
index 9b3793a7fc27..4335efe06252 100644
--- a/sys/vm/vm_map.h
+++ b/sys/vm/vm_map.h
@@ -380,6 +380,6 @@ int vm_map_unwire(vm_map_t map, vm_offset_t start, vm_offset_t end,
     int flags);
 int vm_map_wire(vm_map_t map, vm_offset_t start, vm_offset_t end,
     int flags);
-vm_offset_t vmspace_swap_count(struct vmspace *vmspace);
+long vmspace_swap_count(struct vmspace *vmspace);
 #endif				/* _KERNEL */
 #endif				/* _VM_MAP_ */