diff --git a/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c b/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c index f5a9e57a3ea4..869b4a33bcfe 100644 --- a/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c +++ b/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c @@ -968,7 +968,11 @@ static u32 *copy_batch(struct drm_i915_gem_object *dest_obj, unmap_src: #ifdef __NetBSD__ - uvm_unmap(kernel_map, (vaddr_t)src_base, batch_len); + { + vaddr_t start0 = (vaddr_t)src_base; + vsize_t len0 = roundup(batch_len, PAGE_SIZE); + uvm_unmap(kernel_map, start0, start0 + len0); + } #else vunmap(src_base); #endif @@ -1224,7 +1228,9 @@ int i915_parse_cmds(struct intel_engine_cs *ring, } #ifdef __NetBSD__ - uvm_unmap(kernel_map, (vaddr_t)batch_base, batch_obj->base.size); + vaddr_t start0 = (vaddr_t)batch_base; + vsize_t len0 = roundup(batch_obj->base.size, PAGE_SIZE); + uvm_unmap(kernel_map, start0, start0 + len0); #else vunmap(batch_base); #endif