c
static inline u64 clamp_offset(u64 base, u64 offset, u64 max_size) {
    return (base + offset < max_size) ? base + offset : max_size - 1;
}

// ...

u64 safe_offset = clamp_offset(map_ofs, (level - 1) * XE_PAGE_SIZE, bo->size);
entry = vm->pt_ops->pde_encode_bo(bo, safe_offset, pat_index);
xe_map_wr(xe, &bo->vmap, map_ofs + XE_PAGE_SIZE * level, u64, entry | flags);
