]> Gentwo Git Trees - linux/.git/commitdiff
drm/xe/pf: Check for fence error on VRAM save/restore
authorMichał Winiarski <michal.winiarski@intel.com>
Fri, 14 Nov 2025 12:23:39 +0000 (13:23 +0100)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Fri, 21 Nov 2025 07:40:57 +0000 (08:40 +0100)
The code incorrectly assumes that the VRAM save/restore fence is valid.
Fix it by checking for error.

Fixes: 49cf1b9b609fe ("drm/xe/pf: Handle VRAM migration data as part of PF control")
Suggested-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://patch.msgid.link/20251114122339.1791026-1-michal.winiarski@intel.com
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
(cherry picked from commit 78ff838a8ab78b3cd438e382ff5204b93db3237e)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
drivers/gpu/drm/xe/xe_gt_sriov_pf_migration.c

index 7540a3854dc7053f1f310f6f36855692a6aec200..d5d918ddce4fe108d23eec185dcabb55c15599ee 100644 (file)
@@ -571,6 +571,10 @@ static int pf_save_vram_chunk(struct xe_gt *gt, unsigned int vfid,
        fence = __pf_save_restore_vram(gt, vfid,
                                       src_vram, src_vram_offset,
                                       data->bo, 0, size, true);
+       if (IS_ERR(fence)) {
+               ret = PTR_ERR(fence);
+               goto fail;
+       }
 
        ret = dma_fence_wait_timeout(fence, false, PF_VRAM_SAVE_RESTORE_TIMEOUT);
        dma_fence_put(fence);
@@ -654,6 +658,11 @@ static int pf_restore_vf_vram_mig_data(struct xe_gt *gt, unsigned int vfid,
 
        fence = __pf_save_restore_vram(gt, vfid, vram, data->hdr.offset,
                                       data->bo, 0, data->hdr.size, false);
+       if (IS_ERR(fence)) {
+               ret = PTR_ERR(fence);
+               goto err;
+       }
+
        ret = dma_fence_wait_timeout(fence, false, PF_VRAM_SAVE_RESTORE_TIMEOUT);
        dma_fence_put(fence);
        if (!ret) {