x86: fix deadlock, make pgd_lock irq-safe