mmu_take_all_locks() takes a spinlock for each vma, which means we increasethe preempt count by the number of vmas in an address space. Since the usercontrols the number of vmas, they can cause preempt_count to overflow.

Fix by making mmu_take_all_locks() only disable preemption once by makingthe spinlocks preempt-neutral.