]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe: Simplify madvise_preferred_mem_loc()
authorThomas Hellström <thomas.hellstrom@linux.intel.com>
Fri, 19 Dec 2025 11:33:10 +0000 (12:33 +0100)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Tue, 23 Dec 2025 09:00:48 +0000 (10:00 +0100)
Simplify madvise_preferred_mem_loc by removing repetitive patterns
in favour of local variables.

Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20251219113320.183860-15-thomas.hellstrom@linux.intel.com
drivers/gpu/drm/xe/xe_vm_madvise.c
drivers/gpu/drm/xe/xe_vm_types.h

index 9553008409d104f798d738823238372e27419cf9..d6f47c8e146d874134962c854c1b40855e2ea6c5 100644 (file)
@@ -81,21 +81,22 @@ static void madvise_preferred_mem_loc(struct xe_device *xe, struct xe_vm *vm,
        xe_assert(vm->xe, op->type == DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC);
 
        for (i = 0; i < num_vmas; i++) {
+               struct xe_vma *vma = vmas[i];
+               struct xe_vma_preferred_loc *loc = &vma->attr.preferred_loc;
+
                /*TODO: Extend attributes to bo based vmas */
-               if ((vmas[i]->attr.preferred_loc.devmem_fd == op->preferred_mem_loc.devmem_fd &&
-                    vmas[i]->attr.preferred_loc.migration_policy ==
-                    op->preferred_mem_loc.migration_policy) ||
-                   !xe_vma_is_cpu_addr_mirror(vmas[i])) {
-                       vmas[i]->skip_invalidation = true;
+               if ((loc->devmem_fd == op->preferred_mem_loc.devmem_fd &&
+                    loc->migration_policy == op->preferred_mem_loc.migration_policy) ||
+                   !xe_vma_is_cpu_addr_mirror(vma)) {
+                       vma->skip_invalidation = true;
                } else {
-                       vmas[i]->skip_invalidation = false;
-                       vmas[i]->attr.preferred_loc.devmem_fd = op->preferred_mem_loc.devmem_fd;
+                       vma->skip_invalidation = false;
+                       loc->devmem_fd = op->preferred_mem_loc.devmem_fd;
                        /* Till multi-device support is not added migration_policy
                         * is of no use and can be ignored.
                         */
-                       vmas[i]->attr.preferred_loc.migration_policy =
-                                               op->preferred_mem_loc.migration_policy;
-                       vmas[i]->attr.preferred_loc.dpagemap = NULL;
+                       loc->migration_policy = op->preferred_mem_loc.migration_policy;
+                       loc->dpagemap = NULL;
                }
        }
 }
index 594555f1669a22e56f41cb8f3bac3d561d5781ca..437f64202f3b722a6c8114bd08e4938f49112a86 100644 (file)
@@ -56,7 +56,7 @@ struct xe_vm_pgtable_update_op;
  */
 struct xe_vma_mem_attr {
        /** @preferred_loc: preferred memory_location */
-       struct {
+       struct xe_vma_preferred_loc {
                /** @preferred_loc.migration_policy: Pages migration policy */
                u32 migration_policy;