domain_shutdown() needs to call raise_softirq(SCHEDULE_SOFTIRQ). This forces the current vcpu to be rescheduled and paused. Without this, during live migrate, if another vcpu has defer_shutdown==1 then the current vcpu can return from domain_shutdown(), do a vmenter, and continue running guest code, "resume" code that should only be running on the receiving node! Signed-off-by: Robert Phillips Signed-off-by: Ben Guthro