Skip to contentSkip to conversation

linux-next: manual merge of the drm-xe tree with the origin tree

PATCH Mark Brown 1 participant 1 message Jul 22

Subsystems (3)
lore
Share & tools
lore

Mark Brown

author maintainer
#0 lore raw

Hi all,

Today's linux-next merge of the drm-xe tree got a conflict in:

drivers/gpu/drm/xe/xe_sriov_vf_ccs.c

between commit:

56441f9e08ad6 ("drm/xe/vf: Fix VF CCS attach/detach race with in-flight BO moves")

from the origin tree and commit:

d45ad0aa7a1eb ("drm/xe/vf: Fix VF CCS attach/detach race with in-flight BO moves")

from the drm-xe tree.

I fixed it up (see below) and can carry the fix as necessary. This is now fixed as far as linux-next is concerned, but any non trivial conflicts should be mentioned to your upstream maintainer when your tree is submitted for merging. You may also want to consider cooperating with the maintainer of the conflicting tree to minimise any particularly complex conflicts.

drivers/gpu/drm/xe/xe_sriov_vf_ccs.c +0 -0
diff --combined drivers/gpu/drm/xe/xe_sriov_vf_ccs.c
index 6787564629c65,a8c831fbee3b5..0000000000000
@@@ -3,6 -3,8 +3,8 @@@
   * Copyright © 2025 Intel Corporation
   */
  
+ #include <drm/drm_drv.h>
+ 
  #include "instructions/xe_mi_commands.h"
  #include "instructions/xe_gpu_commands.h"
  #include "xe_bb.h"
@@@ -446,7 -448,7 +448,7 @@@ err_unwind
  	 */
  	for_each_ccs_rw_ctx(ctx_id) {
  		if (bo->bb_ccs[ctx_id])
- 			xe_migrate_ccs_rw_copy_clear(bo, ctx_id);
+ 			xe_migrate_ccs_rw_copy_clear(bo, ctx_id, true);
  	}
  	return err;
  }
@@@ -466,19 -468,27 +468,27 @@@ int xe_sriov_vf_ccs_detach_bo(struct xe
  	struct xe_device *xe = xe_bo_device(bo);
  	enum xe_sriov_vf_ccs_rw_ctxs ctx_id;
  	struct xe_mem_pool_node *bb;
+ 	bool bound;
+ 	int idx;
  
  	xe_assert(xe, IS_VF_CCS_READY(xe));
  
  	if (!xe_bo_has_valid_ccs_bb(bo))
  		return 0;
  
+ 	bound = drm_dev_enter(&xe->drm, &idx);
+ 
  	for_each_ccs_rw_ctx(ctx_id) {
  		bb = bo->bb_ccs[ctx_id];
  		if (!bb)
  			continue;
  
- 		xe_migrate_ccs_rw_copy_clear(bo, ctx_id);
+ 		xe_migrate_ccs_rw_copy_clear(bo, ctx_id, bound);
  	}
+ 
+ 	if (bound)
+ 		drm_dev_exit(idx);
+ 
  	return 0;
  }