drm/i915: Replace open-coded memset_p()
authorChris Wilson <[email protected]>
Mon, 12 Feb 2018 13:31:18 +0000 (13:31 +0000)
committerChris Wilson <[email protected]>
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 <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
Cc: Matthew Auld <[email protected]>
Cc: Mika Kuoppala <[email protected]>
Reviewed-by: Matthew Auld <[email protected]>
Reviewed-by: Mika Kuoppala <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
drivers/gpu/drm/i915/i915_gem_gtt.c

index 0c0f1affddad8b5a1fbe327f02266f604601922a..a44eccda7d484b40b9ddf4b3c1c810cd3f947809 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 */