Commit 9a940bb5 authored by Tomasz Lis's avatar Tomasz Lis Committed by Michal Wajdeczko
Browse files

drm/xe: Assert that VF will never use fixed placement of BOs



Most BOs do not care at which offset they will be accessed within
GGTT or PPGTT. The few which do care, should be only created
on PF, and mapped within GGTT. On VFs, mapping at fixed offset
is prohibited, as each VF is granted access to a range of
GGTT address space.

Since fixed addresses of GGTT mapping can only be used on PF,
add an assert which makes sure no attempt of fixed placement
will happen for a driver probed on a VF.

Reviewed-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: default avatarTomasz Lis <tomasz.lis@intel.com>
Signed-off-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://lore.kernel.org/r/20251021224817.1593817-4-tomasz.lis@intel.com
parent c8863433
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2275,6 +2275,12 @@ static int __xe_bo_fixed_placement(struct xe_device *xe,
	struct ttm_place *place = bo->placements;
	u32 vram_flag, vram_stolen_flags;

	/*
	 * to allow fixed placement in GGTT of a VF, post-migration fixups would have to
	 * include selecting a new fixed offset and shifting the page ranges for it
	 */
	xe_assert(xe, !IS_SRIOV_VF(xe) || !(bo->flags & XE_BO_FLAG_GGTT));

	if (flags & (XE_BO_FLAG_USER | XE_BO_FLAG_SYSTEM))
		return -EINVAL;