I'm not sure whether this is a real well done April 1st joke or if there
mmu_take_all_locks() takes a spinlock for each vma, which means we increaseRight, so while this will get rid of the warning it doesn't make the
the preempt count by the number of vmas in an address space. Since the user
controls the number of vmas, they can cause preempt_count to overflow.
Fix by making mmu_take_all_locks() only disable preemption once by making
the spinlocks preempt-neutral.
code any nicer, its still a massive !preempt latency spot.
is someone trying to secure the "bad taste patch of the month" price.
Anyway, I don't see a reason why we can't convert those locks to
mutexes and get rid of the whole preempt disabled region.