[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