@@ -428,6 +428,16 @@ int xe_svm_handle_pagefault(struct xe_vm *vm, struct xe_vma *vma,
return err;
}
+/**
+ * xe_svm_has_mapping() - SVM has mappings
+ * @vm: The VM.
+ * @start: Start address.
+ * @end: End address.
+ *
+ * Check if an address range has SVM mappings.
+ *
+ * Return: True is address range has a SVM mapping, False otherwise
+ */
bool xe_svm_has_mapping(struct xe_vm *vm, u64 start, u64 end)
{
return drm_gpusvm_has_mapping(&vm->svm.gpusvm, start, end);
@@ -3020,12 +3020,6 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
u16 pat_index = (*bind_ops)[i].pat_index;
u16 coh_mode;
- /* FIXME: Disabling CPU address mirror for now */
- if (XE_IOCTL_DBG(xe, is_cpu_addr_mirror)) {
- err = -EOPNOTSUPP;
- goto free_bind_ops;
- }
-
if (XE_IOCTL_DBG(xe, is_cpu_addr_mirror &&
!xe_vm_in_fault_mode(vm))) {
err = -EINVAL;