drm/i915: Replace open-coded memset_p()
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 12 Feb 2018 13:31:18 +0000 (13:31 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 12 Feb 2018 17:30:52 +0000 (17:30 +0000)
When initialising the page directories, we set the GTT entries and the
tree to the scratch page. We have already replaced the DMA fill with
memset64(), but we can similarly use memset_p() to set the pointer array.

References: 4dd504f7d98a ("drm/i915: Use memset64() to prefill the GTT page")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180212133118.16443-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_gtt.c

index 0c0f1af..a44eccd 100644 (file)
@@ -673,27 +673,22 @@ static void free_pd(struct i915_address_space *vm,
 static void gen8_initialize_pd(struct i915_address_space *vm,
                               struct i915_page_directory *pd)
 {
-       unsigned int i;
-
        fill_px(vm, pd,
                gen8_pde_encode(px_dma(vm->scratch_pt), I915_CACHE_LLC));
-       for (i = 0; i < I915_PDES; i++)
-               pd->page_table[i] = vm->scratch_pt;
+       memset_p((void **)pd->page_table, vm->scratch_pt, I915_PDES);
 }
 
 static int __pdp_init(struct i915_address_space *vm,
                      struct i915_page_directory_pointer *pdp)
 {
        const unsigned int pdpes = i915_pdpes_per_pdp(vm);
-       unsigned int i;
 
        pdp->page_directory = kmalloc_array(pdpes, sizeof(*pdp->page_directory),
                                            GFP_KERNEL | __GFP_NOWARN);
        if (unlikely(!pdp->page_directory))
                return -ENOMEM;
 
-       for (i = 0; i < pdpes; i++)
-               pdp->page_directory[i] = vm->scratch_pd;
+       memset_p((void **)pdp->page_directory, vm->scratch_pd, pdpes);
 
        return 0;
 }
@@ -764,12 +759,9 @@ static void gen8_initialize_pdp(struct i915_address_space *vm,
 static void gen8_initialize_pml4(struct i915_address_space *vm,
                                 struct i915_pml4 *pml4)
 {
-       unsigned int i;
-
        fill_px(vm, pml4,
                gen8_pml4e_encode(px_dma(vm->scratch_pdp), I915_CACHE_LLC));
-       for (i = 0; i < GEN8_PML4ES_PER_PML4; i++)
-               pml4->pdps[i] = vm->scratch_pdp;
+       memset_p((void **)pml4->pdps, vm->scratch_pdp, GEN8_PML4ES_PER_PML4);
 }
 
 /* Broadwell Page Directory Pointer Descriptors */