diff options
| author | Rodrigo Vivi <[email protected]> | 2018-07-23 09:13:12 -0700 | 
|---|---|---|
| committer | Rodrigo Vivi <[email protected]> | 2018-07-23 09:13:12 -0700 | 
| commit | c74a7469f97c0f40b46e82ee979f9fb1bb6e847c (patch) | |
| tree | f2690a1a916b73ef94657fbf0e0141ae57701825 /arch/arm64/mm/mmu.c | |
| parent | 6f15a7de86c8cf2dc09fc9e6d07047efa40ef809 (diff) | |
| parent | 500775074f88d9cf5416bed2ca19592812d62c41 (diff) | |
Merge drm/drm-next into drm-intel-next-queued
We need a backmerge to get DP_DPCD_REV_14 before we push other
i915 changes to dinq that could break compilation.
Signed-off-by: Rodrigo Vivi <[email protected]>
Diffstat (limited to 'arch/arm64/mm/mmu.c')
| -rw-r--r-- | arch/arm64/mm/mmu.c | 16 | 
1 files changed, 10 insertions, 6 deletions
| diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index 2dbb2c9f1ec1..493ff75670ff 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -933,13 +933,15 @@ int pud_set_huge(pud_t *pudp, phys_addr_t phys, pgprot_t prot)  {  	pgprot_t sect_prot = __pgprot(PUD_TYPE_SECT |  					pgprot_val(mk_sect_prot(prot))); +	pud_t new_pud = pfn_pud(__phys_to_pfn(phys), sect_prot); -	/* ioremap_page_range doesn't honour BBM */ -	if (pud_present(READ_ONCE(*pudp))) +	/* Only allow permission changes for now */ +	if (!pgattr_change_is_safe(READ_ONCE(pud_val(*pudp)), +				   pud_val(new_pud)))  		return 0;  	BUG_ON(phys & ~PUD_MASK); -	set_pud(pudp, pfn_pud(__phys_to_pfn(phys), sect_prot)); +	set_pud(pudp, new_pud);  	return 1;  } @@ -947,13 +949,15 @@ int pmd_set_huge(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot)  {  	pgprot_t sect_prot = __pgprot(PMD_TYPE_SECT |  					pgprot_val(mk_sect_prot(prot))); +	pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), sect_prot); -	/* ioremap_page_range doesn't honour BBM */ -	if (pmd_present(READ_ONCE(*pmdp))) +	/* Only allow permission changes for now */ +	if (!pgattr_change_is_safe(READ_ONCE(pmd_val(*pmdp)), +				   pmd_val(new_pmd)))  		return 0;  	BUG_ON(phys & ~PMD_MASK); -	set_pmd(pmdp, pfn_pmd(__phys_to_pfn(phys), sect_prot)); +	set_pmd(pmdp, new_pmd);  	return 1;  } |