On 13/09/2017 22:08, Davidlohr Bueso wrote: > The following patches fix and/or justify (in baby steps) some of the > callers. The main exception is s390, which I didn't follow how ->valid_wakeup > can get hoisted as kvm_vcpu_block does not use that in the wait loop. valid_wakeup is just an optimization, so it's not a problem. There seems to be always an atomic_or or set_bit before kvm_s390_vcpu_wakeup is called (except kvm_s390_idle_wakeup which has no store at all and doesn't need any serialization). So my suggestion is to add an smp__mb_after_atomic in kvm_s390_vcpu_wakeup; I'll let the s390 guys do it. Paolo