aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/mm/pgtable.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/mm/pgtable.c')
-rw-r--r--arch/s390/mm/pgtable.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
index 37a23c22370..458893f5f6b 100644
--- a/arch/s390/mm/pgtable.c
+++ b/arch/s390/mm/pgtable.c
@@ -291,8 +291,9 @@ void page_table_free_rcu(struct mmu_gather *tlb, unsigned long *table)
291 291
292void __tlb_remove_table(void *_table) 292void __tlb_remove_table(void *_table)
293{ 293{
294 void *table = (void *)((unsigned long) _table & PAGE_MASK); 294 const unsigned long mask = (FRAG_MASK << 4) | FRAG_MASK;
295 unsigned type = (unsigned long) _table & ~PAGE_MASK; 295 void *table = (void *)((unsigned long) _table & ~mask);
296 unsigned type = (unsigned long) _table & mask;
296 297
297 if (type) 298 if (type)
298 __page_table_free_rcu(table, type); 299 __page_table_free_rcu(table, type);