vma at this point can never be NULL as otherwise it would crash earlier
in the only caller, xe_pt_stage_bind_entry(). Remove the extra check and
avoid adding and removing the bits from the pte.
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://lore.kernel.org/r/20230927193902.2849159-3-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
static u64 __vma_pte_encode(u64 pte, struct xe_vma *vma,
enum xe_cache_level cache, u32 pt_level)
{
- pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
+ pte |= XE_PAGE_PRESENT;
+
+ if (likely(!xe_vma_read_only(vma)))
+ pte |= XE_PAGE_RW;
+
pte |= pte_encode_cache(cache);
pte |= pte_encode_ps(pt_level);
- if (unlikely(vma && xe_vma_read_only(vma)))
- pte &= ~XE_PAGE_RW;
-
- if (unlikely(vma && xe_vma_is_null(vma)))
+ if (unlikely(xe_vma_is_null(vma)))
pte |= XE_PTE_NULL;
return pte;