]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/xe/vf: Fix register value lookup
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Thu, 18 Jul 2024 20:31:55 +0000 (22:31 +0200)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 15 Aug 2024 13:44:22 +0000 (09:44 -0400)
We should use the number of actual entries stored in the runtime
register buffer, not the maximum number of entries that this buffer
can hold, otherwise bsearch() may fail and we may miss the data and
wrongly report unexpected access to some registers.

Fixes: 4edadc41a3a4 ("drm/xe/vf: Use register values obtained from the PF")
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240718203155.486-1-michal.wajdeczko@intel.com
(cherry picked from commit ad16682db18f4414e53bba1ce0db75b08bdc4dff)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_gt_sriov_vf.c

index 41e46a00c01e89e28670f9d0518e10e5637fc29d..8892d6c2291ebb95ef95faabcbeafd9a36fbd0d3 100644 (file)
@@ -850,7 +850,7 @@ static struct vf_runtime_reg *vf_lookup_reg(struct xe_gt *gt, u32 addr)
 
        xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt)));
 
-       return bsearch(&key, runtime->regs, runtime->regs_size, sizeof(key),
+       return bsearch(&key, runtime->regs, runtime->num_regs, sizeof(key),
                       vf_runtime_reg_cmp);
 }