drm/i915/gtt: Use nonatomic bitmap ops
authorMika Kuoppala <mika.kuoppala@linux.intel.com>
Thu, 25 Jun 2015 15:35:19 +0000 (18:35 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 26 Jun 2015 09:10:39 +0000 (11:10 +0200)
There is no need for atomicity here. Convert all bitmap
operations to nonatomic variants.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Michel Thierry <michel.thierry@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_gtt.c

index 2c8201e06e27ed78e2ee42c35c6b662a431cbee1..e7e0a049995f4b4d1bb94080ce9e9c774e9d479e 100644 (file)
@@ -696,7 +696,7 @@ static int gen8_ppgtt_alloc_pagetabs(struct i915_hw_ppgtt *ppgtt,
 
                gen8_initialize_pt(&ppgtt->base, pt);
                pd->page_table[pde] = pt;
-               set_bit(pde, new_pts);
+               __set_bit(pde, new_pts);
        }
 
        return 0;
@@ -754,7 +754,7 @@ static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
 
                gen8_initialize_pd(&ppgtt->base, pd);
                pdp->page_directory[pdpe] = pd;
-               set_bit(pdpe, new_pds);
+               __set_bit(pdpe, new_pds);
        }
 
        return 0;
@@ -895,7 +895,7 @@ static int gen8_alloc_va_range(struct i915_address_space *vm,
                                   gen8_pte_count(pd_start, pd_len));
 
                        /* Our pde is now pointing to the pagetable, pt */
-                       set_bit(pde, pd->used_pdes);
+                       __set_bit(pde, pd->used_pdes);
 
                        /* Map the PDE to the page table */
                        page_directory[pde] = gen8_pde_encode(px_dma(pt),
@@ -907,7 +907,7 @@ static int gen8_alloc_va_range(struct i915_address_space *vm,
 
                kunmap_px(ppgtt, page_directory);
 
-               set_bit(pdpe, ppgtt->pdp.used_pdpes);
+               __set_bit(pdpe, ppgtt->pdp.used_pdpes);
        }
 
        free_gen8_temp_bitmaps(new_page_dirs, new_page_tables);
@@ -1329,7 +1329,7 @@ static int gen6_alloc_va_range(struct i915_address_space *vm,
                gen6_initialize_pt(vm, pt);
 
                ppgtt->pd.page_table[pde] = pt;
-               set_bit(pde, new_page_tables);
+               __set_bit(pde, new_page_tables);
                trace_i915_page_table_entry_alloc(vm, pde, start, GEN6_PDE_SHIFT);
        }
 
@@ -1343,7 +1343,7 @@ static int gen6_alloc_va_range(struct i915_address_space *vm,
                bitmap_set(tmp_bitmap, gen6_pte_index(start),
                           gen6_pte_count(start, length));
 
-               if (test_and_clear_bit(pde, new_page_tables))
+               if (__test_and_clear_bit(pde, new_page_tables))
                        gen6_write_pde(&ppgtt->pd, pde, pt);
 
                trace_i915_page_table_entry_map(vm, pde, pt,
This page took 0.073042 seconds and 5 git commands to generate.