diff options
Diffstat (limited to 'sys/vm/uma_dbg.c')
-rw-r--r-- | sys/vm/uma_dbg.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/vm/uma_dbg.c b/sys/vm/uma_dbg.c index 729558b..c5ca8c8 100644 --- a/sys/vm/uma_dbg.c +++ b/sys/vm/uma_dbg.c @@ -42,6 +42,9 @@ #include <sys/mutex.h> #include <sys/malloc.h> +#include <vm/vm.h> +#include <vm/vm_object.h> +#include <vm/vm_page.h> #include <vm/uma.h> #include <vm/uma_int.h> #include <vm/uma_dbg.h> @@ -194,10 +197,8 @@ uma_dbg_getslab(uma_zone_t zone, void *item) mem = (u_int8_t *)((unsigned long)item & (~UMA_SLAB_MASK)); if (zone->uz_flags & UMA_ZFLAG_MALLOC) { - mtx_lock(&malloc_mtx); - slab = hash_sfind(mallochash, mem); - mtx_unlock(&malloc_mtx); - } else if (zone->uz_flags & UMA_ZFLAG_OFFPAGE) { + slab = vtoslab((vm_offset_t)mem); + } else if (zone->uz_flags & UMA_ZFLAG_HASH) { ZONE_LOCK(zone); slab = hash_sfind(&zone->uz_hash, mem); ZONE_UNLOCK(zone); |