Skip to content

Commit fa79419

Browse files
cpwickmantorvalds
authored andcommitted
mm: export mmu notifier invalidates
We at SGI have a need to address some very high physical address ranges with our GRU (global reference unit), sometimes across partitioned machine boundaries and sometimes with larger addresses than the cpu supports. We do this with the aid of our own 'extended vma' module which mimics the vma. When something (either unmap or exit) frees an 'extended vma' we use the mmu notifiers to clean them up. We had been able to mimic the functions __mmu_notifier_invalidate_range_start() and __mmu_notifier_invalidate_range_end() by locking the per-mm lock and walking the per-mm notifier list. But with the change to a global srcu lock (static in mmu_notifier.c) we can no longer do that. Our module has no access to that lock. So we request that these two functions be exported. Signed-off-by: Cliff Wickman <[email protected]> Acked-by: Robin Holt <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent 240aade commit fa79419

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

mm/mmu_notifier.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ void __mmu_notifier_invalidate_range_start(struct mm_struct *mm,
172172
}
173173
srcu_read_unlock(&srcu, id);
174174
}
175+
EXPORT_SYMBOL_GPL(__mmu_notifier_invalidate_range_start);
175176

176177
void __mmu_notifier_invalidate_range_end(struct mm_struct *mm,
177178
unsigned long start, unsigned long end)
@@ -187,6 +188,7 @@ void __mmu_notifier_invalidate_range_end(struct mm_struct *mm,
187188
}
188189
srcu_read_unlock(&srcu, id);
189190
}
191+
EXPORT_SYMBOL_GPL(__mmu_notifier_invalidate_range_end);
190192

191193
static int do_mmu_notifier_register(struct mmu_notifier *mn,
192194
struct mm_struct *mm,

0 commit comments

Comments
 (0)