c
size_t offset;
if (__builtin_mul_overflow(level - 1, XE_PAGE_SIZE, &offset) ||
    __builtin_add_overflow(map_ofs, offset, &offset) ||
    offset >= bo->size) {
    // Handle error condition
    dev_err(xe->dev, "Offset calculation overflow in xe_migrate_prepare_vm\n");
    return -EINVAL;
}
entry = vm->pt_ops->pde_encode_bo(bo, offset, pat_index);
xe_map_wr(xe, &bo->vmap, map_ofs + XE_PAGE_SIZE * level, u64, entry | flags);
