Unlike native/PF driver, which was explicitly triggering full GuC
reset during driver unwind, the VF driver was not notifying GuC that
it is about to unwind, and this could lead GuC to access stale data,
which in turn could be interpreted as VF's malicious activity.
Add managed action to send to GuC VF_RESET message during GT unwind.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Link: https://patch.msgid.link/20260122151924.3726-1-michal.wajdeczko@intel.com
guc_g2g_fini(guc);
}
+static void vf_guc_fini_hw(void *arg)
+{
+ struct xe_guc *guc = arg;
+
+ xe_gt_sriov_vf_reset(guc_to_gt(guc));
+}
+
/**
* xe_guc_comm_init_early - early initialization of GuC communication
* @guc: the &xe_guc to initialize
xe->info.has_page_reclaim_hw_assist = false;
if (IS_SRIOV_VF(xe)) {
+ ret = devm_add_action_or_reset(xe->drm.dev, vf_guc_fini_hw, guc);
+ if (ret)
+ goto out;
+
ret = xe_guc_ct_init(&guc->ct);
if (ret)
goto out;