[PATCH v2] drm/xe/vf: Skip attempt to start GuC PC if VF
Belgaumkar, Vinay
vinay.belgaumkar at intel.com
Tue Jun 25 18:01:08 UTC 2024
On 6/22/2024 2:42 AM, Michal Wajdeczko wrote:
> We have already marked the GuC PC feature as not applicable for
> VF devices, but we missed the fact that there may be still some
> privileged activities performed by this component, who does much
> more than its name suggests.
>
> Explicitly skip xe_guc_pc_start() if running as a VF driver and
> use a GT oriented message to report any error.
>
> v2: also skip xe_guc_pc_stop (Vinay)
LGTM,
Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar at intel.com>
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Vinay Belgaumkar <vinay.belgaumkar at intel.com>
> Cc: Matthew Brost <matthew.brost at intel.com>
> ---
> drivers/gpu/drm/xe/xe_guc.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index 172b65a50e31..eb655cee19f7 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -1113,7 +1113,13 @@ void xe_guc_reset_wait(struct xe_guc *guc)
>
> void xe_guc_stop_prepare(struct xe_guc *guc)
> {
> - XE_WARN_ON(xe_guc_pc_stop(&guc->pc));
> + if (!IS_SRIOV_VF(guc_to_xe(guc))) {
> + int err;
> +
> + err = xe_guc_pc_stop(&guc->pc);
> + xe_gt_WARN(guc_to_gt(guc), err, "Failed to stop GuC PC: %pe\n",
> + ERR_PTR(err));
> + }
> }
>
> void xe_guc_stop(struct xe_guc *guc)
> @@ -1125,10 +1131,13 @@ void xe_guc_stop(struct xe_guc *guc)
>
> int xe_guc_start(struct xe_guc *guc)
> {
> - int ret;
> + if (!IS_SRIOV_VF(guc_to_xe(guc))) {
> + int err;
>
> - ret = xe_guc_pc_start(&guc->pc);
> - XE_WARN_ON(ret);
> + err = xe_guc_pc_start(&guc->pc);
> + xe_gt_WARN(guc_to_gt(guc), err, "Failed to start GuC PC: %pe\n",
> + ERR_PTR(err));
> + }
>
> return xe_guc_submit_start(guc);
> }
More information about the Intel-xe
mailing list