f = rcu_dereference_protected(flist->shared[i],
                                              dma_resv_held(resv));
+
+               fence_owner = amdgpu_sync_get_owner(f);
+
+               /* Always sync to moves, no matter what */
+               if (fence_owner == AMDGPU_FENCE_OWNER_UNDEFINED) {
+                       r = amdgpu_sync_fence(sync, f, false);
+                       if (r)
+                               break;
+               }
+
                /* We only want to trigger KFD eviction fences on
                 * evict or move jobs. Skip KFD fences otherwise.
                 */
-               fence_owner = amdgpu_sync_get_owner(f);
                if (fence_owner == AMDGPU_FENCE_OWNER_KFD &&
                    owner != AMDGPU_FENCE_OWNER_UNDEFINED)
                        continue;
                        break;
 
                case AMDGPU_SYNC_EXPLICIT:
-                       if (owner != AMDGPU_FENCE_OWNER_UNDEFINED)
-                               continue;
-                       break;
+                       continue;
                }
 
                r = amdgpu_sync_fence(sync, f, false);