diff options
| -rw-r--r-- | arch/parisc/include/asm/pgalloc.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h index f213f5b4c423..63e9ecae1310 100644 --- a/arch/parisc/include/asm/pgalloc.h +++ b/arch/parisc/include/asm/pgalloc.h | |||
| @@ -74,8 +74,13 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) | |||
| 74 | { | 74 | { |
| 75 | #ifdef CONFIG_64BIT | 75 | #ifdef CONFIG_64BIT |
| 76 | if(pmd_flag(*pmd) & PxD_FLAG_ATTACHED) | 76 | if(pmd_flag(*pmd) & PxD_FLAG_ATTACHED) |
| 77 | /* This is the permanent pmd attached to the pgd; | 77 | /* |
| 78 | * cannot free it */ | 78 | * This is the permanent pmd attached to the pgd; |
| 79 | * cannot free it. | ||
| 80 | * Increment the counter to compensate for the decrement | ||
| 81 | * done by generic mm code. | ||
| 82 | */ | ||
| 83 | mm_inc_nr_pmds(mm); | ||
| 79 | return; | 84 | return; |
| 80 | #endif | 85 | #endif |
| 81 | free_pages((unsigned long)pmd, PMD_ORDER); | 86 | free_pages((unsigned long)pmd, PMD_ORDER); |
