[bug report] drm/i915/gvt: vGPU HW resource management

Dan Carpenter dan.carpenter at oracle.com
Tue Jul 3 12:28:39 UTC 2018


Hello Zhi Wang,

The patch 28a60dee2ce6: "drm/i915/gvt: vGPU HW resource management"
from Sep 2, 2016, leads to the following static checker warning:

	drivers/gpu/drm/i915/gvt/aperture_gm.c:137 intel_vgpu_write_fence()
	warn: array off by one? 'vgpu->fence.regs[fence]'

drivers/gpu/drm/i915/gvt/aperture_gm.c
   124  void intel_vgpu_write_fence(struct intel_vgpu *vgpu,
   125                  u32 fence, u64 value)
   126  {
   127          struct intel_gvt *gvt = vgpu->gvt;
   128          struct drm_i915_private *dev_priv = gvt->dev_priv;
   129          struct drm_i915_fence_reg *reg;
   130          i915_reg_t fence_reg_lo, fence_reg_hi;
   131  
   132          assert_rpm_wakelock_held(dev_priv);
   133  
   134          if (WARN_ON(fence > vgpu_fence_sz(vgpu)))
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
I think this should be >= but the code was slightly hard for me to
follow so I'm not positive.

   135                  return;
   136  
   137          reg = vgpu->fence.regs[fence];
   138          if (WARN_ON(!reg))
   139                  return;
   140  
   141          fence_reg_lo = FENCE_REG_GEN6_LO(reg->id);
   142          fence_reg_hi = FENCE_REG_GEN6_HI(reg->id);
   143  
   144          I915_WRITE(fence_reg_lo, 0);
   145          POSTING_READ(fence_reg_lo);
   146  
   147          I915_WRITE(fence_reg_hi, upper_32_bits(value));
   148          I915_WRITE(fence_reg_lo, lower_32_bits(value));
   149          POSTING_READ(fence_reg_lo);
   150  }

regards,
dan carpenter


More information about the intel-gvt-dev mailing list