c
#define SAFE_OFFSET(base, index, size, max) \
    ((base) + ((index) < ((max) - (base)) / (size) ? (index) * (size) : ((max) - (base))))

// ...

u64 safe_offset = SAFE_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);
