@@ -2446,18 +2446,18 @@ static int aliasing_gtt_bind_vma(struct i915_vma *vma,
24462446 pte_flags |= PTE_READ_ONLY ;
24472447
24482448 if (flags & I915_VMA_LOCAL_BIND ) {
2449- struct i915_ppgtt * appgtt = i915 -> mm . aliasing_ppgtt ;
2449+ struct i915_ppgtt * alias = i915_vm_to_ggtt ( vma -> vm ) -> alias ;
24502450
24512451 if (!(vma -> flags & I915_VMA_LOCAL_BIND )) {
2452- ret = appgtt -> vm .allocate_va_range (& appgtt -> vm ,
2453- vma -> node .start ,
2454- vma -> size );
2452+ ret = alias -> vm .allocate_va_range (& alias -> vm ,
2453+ vma -> node .start ,
2454+ vma -> size );
24552455 if (ret )
24562456 return ret ;
24572457 }
24582458
2459- appgtt -> vm .insert_entries (& appgtt -> vm , vma , cache_level ,
2460- pte_flags );
2459+ alias -> vm .insert_entries (& alias -> vm , vma ,
2460+ cache_level , pte_flags );
24612461 }
24622462
24632463 if (flags & I915_VMA_GLOBAL_BIND ) {
@@ -2485,7 +2485,8 @@ static void aliasing_gtt_unbind_vma(struct i915_vma *vma)
24852485 }
24862486
24872487 if (vma -> flags & I915_VMA_LOCAL_BIND ) {
2488- struct i915_address_space * vm = & i915 -> mm .aliasing_ppgtt -> vm ;
2488+ struct i915_address_space * vm =
2489+ & i915_vm_to_ggtt (vma -> vm )-> alias -> vm ;
24892490
24902491 vm -> clear_range (vm , vma -> node .start , vma -> size );
24912492 }
@@ -2542,13 +2543,12 @@ static void i915_gtt_color_adjust(const struct drm_mm_node *node,
25422543 * end -= I915_GTT_PAGE_SIZE ;
25432544}
25442545
2545- static int init_aliasing_ppgtt (struct drm_i915_private * i915 )
2546+ static int init_aliasing_ppgtt (struct i915_ggtt * ggtt )
25462547{
2547- struct i915_ggtt * ggtt = & i915 -> ggtt ;
25482548 struct i915_ppgtt * ppgtt ;
25492549 int err ;
25502550
2551- ppgtt = i915_ppgtt_create (i915 );
2551+ ppgtt = i915_ppgtt_create (ggtt -> vm . i915 );
25522552 if (IS_ERR (ppgtt ))
25532553 return PTR_ERR (ppgtt );
25542554
@@ -2567,7 +2567,7 @@ static int init_aliasing_ppgtt(struct drm_i915_private *i915)
25672567 if (err )
25682568 goto err_ppgtt ;
25692569
2570- i915 -> mm . aliasing_ppgtt = ppgtt ;
2570+ ggtt -> alias = ppgtt ;
25712571
25722572 GEM_BUG_ON (ggtt -> vm .vma_ops .bind_vma != ggtt_bind_vma );
25732573 ggtt -> vm .vma_ops .bind_vma = aliasing_gtt_bind_vma ;
@@ -2582,14 +2582,14 @@ static int init_aliasing_ppgtt(struct drm_i915_private *i915)
25822582 return err ;
25832583}
25842584
2585- static void fini_aliasing_ppgtt (struct drm_i915_private * i915 )
2585+ static void fini_aliasing_ppgtt (struct i915_ggtt * ggtt )
25862586{
2587- struct i915_ggtt * ggtt = & i915 -> ggtt ;
2587+ struct drm_i915_private * i915 = ggtt -> vm . i915 ;
25882588 struct i915_ppgtt * ppgtt ;
25892589
25902590 mutex_lock (& i915 -> drm .struct_mutex );
25912591
2592- ppgtt = fetch_and_zero (& i915 -> mm . aliasing_ppgtt );
2592+ ppgtt = fetch_and_zero (& ggtt -> alias );
25932593 if (!ppgtt )
25942594 goto out ;
25952595
@@ -2706,7 +2706,7 @@ int i915_init_ggtt(struct drm_i915_private *i915)
27062706 return ret ;
27072707
27082708 if (INTEL_PPGTT (i915 ) == INTEL_PPGTT_ALIASING ) {
2709- ret = init_aliasing_ppgtt (i915 );
2709+ ret = init_aliasing_ppgtt (& i915 -> ggtt );
27102710 if (ret )
27112711 cleanup_init_ggtt (& i915 -> ggtt );
27122712 }
@@ -2755,7 +2755,7 @@ void i915_ggtt_driver_release(struct drm_i915_private *i915)
27552755{
27562756 struct pagevec * pvec ;
27572757
2758- fini_aliasing_ppgtt (i915 );
2758+ fini_aliasing_ppgtt (& i915 -> ggtt );
27592759
27602760 ggtt_cleanup_hw (& i915 -> ggtt );
27612761
@@ -3588,7 +3588,7 @@ int i915_gem_gtt_reserve(struct i915_address_space *vm,
35883588 GEM_BUG_ON (!IS_ALIGNED (size , I915_GTT_PAGE_SIZE ));
35893589 GEM_BUG_ON (!IS_ALIGNED (offset , I915_GTT_MIN_ALIGNMENT ));
35903590 GEM_BUG_ON (range_overflows (offset , size , vm -> total ));
3591- GEM_BUG_ON (vm == & vm -> i915 -> mm . aliasing_ppgtt -> vm );
3591+ GEM_BUG_ON (vm == & vm -> i915 -> ggtt . alias -> vm );
35923592 GEM_BUG_ON (drm_mm_node_allocated (node ));
35933593
35943594 node -> size = size ;
@@ -3685,7 +3685,7 @@ int i915_gem_gtt_insert(struct i915_address_space *vm,
36853685 GEM_BUG_ON (start >= end );
36863686 GEM_BUG_ON (start > 0 && !IS_ALIGNED (start , I915_GTT_PAGE_SIZE ));
36873687 GEM_BUG_ON (end < U64_MAX && !IS_ALIGNED (end , I915_GTT_PAGE_SIZE ));
3688- GEM_BUG_ON (vm == & vm -> i915 -> mm . aliasing_ppgtt -> vm );
3688+ GEM_BUG_ON (vm == & vm -> i915 -> ggtt . alias -> vm );
36893689 GEM_BUG_ON (drm_mm_node_allocated (node ));
36903690
36913691 if (unlikely (range_overflows (start , size , end )))
0 commit comments