]> www.infradead.org Git - users/hch/configfs.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)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Fri, 19 Jul 2024 09:06:09 +0000 (11:06 +0200)
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
drivers/gpu/drm/xe/xe_gt_sriov_vf.c

index 6a87d31c44e6f1f8175c768a9f95399556d02a58..47222bd9988d7fed5241c5ddc6f10dbb9ecb8101 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);
 }