[Intel-gfx] drm/i915/gen8: page directories rework allocation

Dan Carpenter dan.carpenter at oracle.com
Thu Apr 30 03:47:45 PDT 2015


Hi Michel,

The patch 69876bed7e00: "drm/i915/gen8: page directories rework
allocation" from Apr 8, 2015, has the following issue:

	drivers/gpu/drm/i915/i915_gem_gtt.c:760
	warn: too many zeroes

drivers/gpu/drm/i915/i915_gem_gtt.c
   746  static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
   747                                       struct i915_page_directory_pointer *pdp,
   748                                       uint64_t start,
   749                                       uint64_t length,
   750                                       unsigned long *new_pds)
   751  {
   752          struct drm_device *dev = ppgtt->base.dev;
   753          struct i915_page_directory *pd;
   754          uint64_t temp;
   755          uint32_t pdpe;
   756  
   757          WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
   758  
   759          /* FIXME: PPGTT container_of won't work for 64b */
   760          WARN_ON((start + length) > 0x800000000ULL);
                                                     ^
This last zero was not intended.

   761  
   762          gen8_for_each_pdpe(pd, pdp, start, length, temp, pdpe) {
   763                  if (pd)
   764                          continue;
   765  
   766                  pd = alloc_pd_single(dev);
   767                  if (IS_ERR(pd))
   768                          goto unwind_out;
   769  
   770                  gen8_initialize_pd(&ppgtt->base, pd);
   771                  pdp->page_directory[pdpe] = pd;
   772                  set_bit(pdpe, new_pds);
   773          }
   774  
   775          return 0;
   776  
   777  unwind_out:
   778          for_each_set_bit(pdpe, new_pds, GEN8_LEGACY_PDPES)
   779                  unmap_and_free_pd(pdp->page_directory[pdpe], dev);
   780  
   781          return -ENOMEM;
   782  }


regards,
dan carpenter


More information about the Intel-gfx mailing list