]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe: Combine userspace context check
authorPiotr Piórkowski <piotr.piorkowski@intel.com>
Fri, 3 Oct 2025 16:26:19 +0000 (18:26 +0200)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Mon, 6 Oct 2025 06:33:52 +0000 (08:33 +0200)
Both vm->xef and XE_LRC_CREATE_USER_CTX indicate in xe_lrc_init that
the context originates from userspace. However, XE_LRC_CREATE_USER_CTX
has a broader scope as it may be set even when no vm->xef is present.
The XE_BO_FLAG_PINNED_LATE_RESTORE flag can be extended to both cases,
so there is no point in handling the two cases separately.
Let's combine vm->xef and XE_LRC_CREATE_USER_CTX checks to detect
userspace context.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Suggested-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://lore.kernel.org/r/20251003162619.1984236-6-piotr.piorkowski@intel.com
drivers/gpu/drm/xe/xe_lrc.c

index c88e90175f59c98da7c5e93525062f602ad9dc98..af09f70f6e785956b5760a9eaf18cd678cbda714 100644 (file)
@@ -1412,11 +1412,9 @@ static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
 
        bo_flags = XE_BO_FLAG_VRAM_IF_DGFX(tile) | XE_BO_FLAG_GGTT |
                   XE_BO_FLAG_GGTT_INVALIDATE;
-       if (vm && vm->xef) /* userspace */
-               bo_flags |= XE_BO_FLAG_PINNED_LATE_RESTORE;
 
-       if (init_flags & XE_LRC_CREATE_USER_CTX)
-               bo_flags |= XE_BO_FLAG_FORCE_USER_VRAM;
+       if ((vm && vm->xef) || init_flags & XE_LRC_CREATE_USER_CTX) /* userspace */
+               bo_flags |= XE_BO_FLAG_PINNED_LATE_RESTORE | XE_BO_FLAG_FORCE_USER_VRAM;
 
        lrc->bo = xe_bo_create_pin_map_novm(xe, tile,
                                            bo_size,