[Intel-gfx] [drm-intel:for-linux-next 479/497] drivers/gpu/drm/i915/i915_gem_gtt.c:1086:26: sparse: Using plain integer as NULL pointer

Chris Wilson chris at chris-wilson.co.uk
Fri Aug 7 03:21:03 PDT 2015


On Fri, Aug 07, 2015 at 10:21:34AM +0100, Michel Thierry wrote:
> On 8/6/2015 11:00 PM, Daniel Vetter wrote:
> >On Thu, Aug 6, 2015 at 10:17 PM, kbuild test robot
> ><fengguang.wu at intel.com> wrote:
> >>   1070          if (IS_ENABLED(CONFIG_X86_32))
> >>   1071                  /* While we have a proliferation of size_t variables
> >>   1072                   * we cannot represent the full ppgtt size on 32bit,
> >>   1073                   * so limit it to the same size as the GGTT (currently
> >>   1074                   * 2GiB).
> >>   1075                   */
> >>   1076                  ppgtt->base.total = to_i915(ppgtt->base.dev)->gtt.base.total;
> >>   1077          ppgtt->base.cleanup = gen8_ppgtt_cleanup;
> >>   1078          ppgtt->base.allocate_va_range = gen8_alloc_va_range;
> >>   1079          ppgtt->base.insert_entries = gen8_ppgtt_insert_entries;
> >>   1080          ppgtt->base.clear_range = gen8_ppgtt_clear_range;
> >>   1081          ppgtt->base.unbind_vma = ppgtt_unbind_vma;
> >>   1082          ppgtt->base.bind_vma = ppgtt_bind_vma;
> >>   1083
> >>   1084          ppgtt->switch_mm = gen8_mm_switch;
> >>   1085
> >>>1086          ret = __pdp_init(false, &ppgtt->pdp);
> >
> >So the first argument of pdp_init ist struct drm_device *dev and yes
> >the first thing it does is deref it.
> >
> 
> *dev is used only for I915_PDPES_PER_PDP/USES_FULL_48BIT_PPGTT,
> which in this path is always false. I didn't expect kbuild to
> complain. I'll change it with the other modifications I'm about to
> send.

Wrong. dev is never deferenced even though it is passed around.

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 41c5e7c9c8ab..37283d5a8a4a 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2549,12 +2549,12 @@ struct drm_i915_cmd_table {
 
 #define HAS_HW_CONTEXTS(dev)   (INTEL_INFO(dev)->gen >= 6)
 #define HAS_LOGICAL_RING_CONTEXTS(dev) (INTEL_INFO(dev)->gen >= 8)
-#define USES_PPGTT(dev)                (i915.enable_ppgtt)
-#define USES_FULL_PPGTT(dev)   (i915.enable_ppgtt >= 2)
+#define USES_PPGTT()           (i915.enable_ppgtt)
+#define USES_FULL_PPGTT()      (i915.enable_ppgtt >= 2)
 #ifdef CONFIG_X86_64
-# define USES_FULL_48BIT_PPGTT(dev)    (i915.enable_ppgtt == 3)
+# define USES_FULL_48BIT_PPGTT()       (i915.enable_ppgtt == 3)
 #else
-# define USES_FULL_48BIT_PPGTT(dev)    false
+# define USES_FULL_48BIT_PPGTT()       false
 #endif

-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list