|
@@ -206,7 +206,7 @@ static int ppgtt_bind_vma(struct i915_vma *vma,
|
|
|
|
|
|
/* Applicable to VLV, and gen8+ */
|
|
|
pte_flags = 0;
|
|
|
- if (vma->obj->gt_ro)
|
|
|
+ if (i915_gem_object_is_readonly(vma->obj))
|
|
|
pte_flags |= PTE_READ_ONLY;
|
|
|
|
|
|
vma->vm->insert_entries(vma->vm, vma, cache_level, pte_flags);
|
|
@@ -2491,8 +2491,10 @@ static void gen8_ggtt_insert_entries(struct i915_address_space *vm,
|
|
|
const gen8_pte_t pte_encode = gen8_pte_encode(0, level, 0);
|
|
|
dma_addr_t addr;
|
|
|
|
|
|
- /* The GTT does not support read-only mappings */
|
|
|
- GEM_BUG_ON(flags & PTE_READ_ONLY);
|
|
|
+ /*
|
|
|
+ * Note that we ignore PTE_READ_ONLY here. The caller must be careful
|
|
|
+ * not to allow the user to override access to a read only page.
|
|
|
+ */
|
|
|
|
|
|
gtt_entries = (gen8_pte_t __iomem *)ggtt->gsm;
|
|
|
gtt_entries += vma->node.start >> PAGE_SHIFT;
|
|
@@ -2731,7 +2733,7 @@ static int ggtt_bind_vma(struct i915_vma *vma,
|
|
|
|
|
|
/* Applicable to VLV (gen8+ do not support RO in the GGTT) */
|
|
|
pte_flags = 0;
|
|
|
- if (obj->gt_ro)
|
|
|
+ if (i915_gem_object_is_readonly(obj))
|
|
|
pte_flags |= PTE_READ_ONLY;
|
|
|
|
|
|
intel_runtime_pm_get(i915);
|
|
@@ -2769,7 +2771,7 @@ static int aliasing_gtt_bind_vma(struct i915_vma *vma,
|
|
|
|
|
|
/* Currently applicable only to VLV */
|
|
|
pte_flags = 0;
|
|
|
- if (vma->obj->gt_ro)
|
|
|
+ if (i915_gem_object_is_readonly(vma->obj))
|
|
|
pte_flags |= PTE_READ_ONLY;
|
|
|
|
|
|
if (flags & I915_VMA_LOCAL_BIND) {
|