commit 7be3cf79427b00a22b2234a9c439d7795e360e4a KVM: protect concurrent make_all_cpus_request make_all_cpus_request contains a race condition which can trigger false request completed status, as follows: CPU0 CPU1 if (test_and_set_bit(req,&vcpu->requests)) .... if (test_and_set_bit(req,&vcpu->requests)) .. return proceed to smp_call_function_many(wait=1) Use a spinlock to serialize concurrent CPUs. Cc: stable Signed-off-by: Andrea Arcangeli <aarcange> Signed-off-by: Marcelo Tosatti <mtosatti> Signed-off-by: Avi Kivity <avi>
Created attachment 349783 [details] KVM-protect-concurrent-make-all-cpus-request-2.patch
Created attachment 349784 [details] KVM-protect-concurrent-make-all-cpus-request-3.patch
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHEA-2009-1272.html