Two fixes for locking and jump labels:

   - Ensure that the atomic_cmpxchg() conditions are correct and evaluating
     to true on any non-zero value except 1. The missing check of the
     return value leads to inconsisted state of the jump label counter.

   - Add a missing type conversion in the paravirt spinlock code which
     makes loongson build again.