drm/xe/userptr: Unmap userptrs in the mmu notifier
authorThomas Hellström <thomas.hellstrom@linux.intel.com>
Tue, 4 Mar 2025 17:33:42 +0000 (18:33 +0100)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Wed, 5 Mar 2025 13:28:34 +0000 (14:28 +0100)
commitba767b9d01a2c552d76cf6f46b125d50ec4147a6
tree78c801ac457a0e85b445e96881b3a60bcaa53a03
parentea3e66d280ce2576664a862693d1da8fd324c317
drm/xe/userptr: Unmap userptrs in the mmu notifier

If userptr pages are freed after a call to the xe mmu notifier,
the device will not be blocked out from theoretically accessing
these pages unless they are also unmapped from the iommu, and
this violates some aspects of the iommu-imposed security.

Ensure that userptrs are unmapped in the mmu notifier to
mitigate this. A naive attempt would try to free the sg table, but
the sg table itself may be accessed by a concurrent bind
operation, so settle for only unmapping.

v3:
- Update lockdep asserts.
- Fix a typo (Matthew Auld)

Fixes: 81e058a3e7fd ("drm/xe: Introduce helper to populate userptr")
Cc: Oak Zeng <oak.zeng@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: <stable@vger.kernel.org> # v6.10+
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Acked-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250304173342.22009-4-thomas.hellstrom@linux.intel.com
drivers/gpu/drm/xe/xe_hmm.c
drivers/gpu/drm/xe/xe_hmm.h
drivers/gpu/drm/xe/xe_vm.c
drivers/gpu/drm/xe/xe_vm_types.h