In the MULTIPROCESSOR case where another thread wins the race to allocate
a new segtab page call mips_pmap_unmap_poolpage on the page our thread
allocated and called mips_pmap_map_poolpage for.
Improve locking and kcondvar usage.

The "interrupt" lock doesn't need to be a spin mutex as the vchi
completions we're synchronising with are done in thread context.

Don't share the interrupt lock for the msg_sync done synchronisation.
Free pid for linux processes. Reported by Mark Davies, fix by dsl@
XXX: pullup 6
Use a spinlock for completions. Makes vchiq pass LOCKDEBUG where other
spinlocks where held when trying to use the completion API.