#define XE_PEER_PAGEMAP ((void *)0ul)
#define XE_PEER_VM ((void *)1ul)
+/**
+ * DOC: drm_pagemap reference-counting in xe:
+ *
+ * In addition to the drm_pagemap internal reference counting by its zone
+ * device data, the xe driver holds the following long-time references:
+ *
+ * - struct xe_pagemap:
+ * The xe_pagemap struct derives from struct drm_pagemap and uses its
+ * reference count.
+ * - SVM-enabled VMs:
+ * SVM-enabled VMs look up and keeps a reference to all xe_pagemaps on
+ * the same device.
+ * - VMAs:
+ * vmas keep a reference on the drm_pagemap indicated by a gpu_madvise()
+ * call.
+ *
+ * In addition, all drm_pagemap or xe_pagemap pointers where lifetime cannot
+ * be guaranteed by a vma reference under the vm lock should keep a reference.
+ * That includes the range->pages.dpagemap pointer.
+ */
+
static int xe_svm_get_pagemaps(struct xe_vm *vm);
void *xe_svm_private_page_owner(struct xe_vm *vm, bool force_smem)