diff options
Diffstat (limited to 'arch/sparc/mm/gup.c')
| -rw-r--r-- | arch/sparc/mm/gup.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/sparc/mm/gup.c b/arch/sparc/mm/gup.c index 01ee23dd724d..c4d3da68b800 100644 --- a/arch/sparc/mm/gup.c +++ b/arch/sparc/mm/gup.c @@ -71,13 +71,12 @@ static int gup_huge_pmd(pmd_t *pmdp, pmd_t pmd, unsigned long addr,  			int *nr)  {  	struct page *head, *page, *tail; -	u32 mask;  	int refs; -	mask = PMD_HUGE_PRESENT; -	if (write) -		mask |= PMD_HUGE_WRITE; -	if ((pmd_val(pmd) & mask) != mask) +	if (!pmd_large(pmd)) +		return 0; + +	if (write && !pmd_write(pmd))  		return 0;  	refs = 0;  | 
