.. | .. |
---|
1562 | 1562 | |
---|
1563 | 1563 | cpumask_clear(&hv_vcpu->tlb_flush); |
---|
1564 | 1564 | |
---|
1565 | | - vcpu_mask = all_cpus ? NULL : |
---|
1566 | | - sparse_set_to_vcpu_mask(kvm, sparse_banks, valid_bank_mask, |
---|
1567 | | - vp_bitmap, vcpu_bitmap); |
---|
1568 | | - |
---|
1569 | 1565 | /* |
---|
1570 | 1566 | * vcpu->arch.cr3 may not be up-to-date for running vCPUs so we can't |
---|
1571 | 1567 | * analyze it here, flush TLB regardless of the specified address space. |
---|
1572 | 1568 | */ |
---|
1573 | | - kvm_make_vcpus_request_mask(kvm, KVM_REQ_TLB_FLUSH_GUEST, |
---|
1574 | | - NULL, vcpu_mask, &hv_vcpu->tlb_flush); |
---|
| 1569 | + if (all_cpus) { |
---|
| 1570 | + kvm_make_all_cpus_request(kvm, KVM_REQ_TLB_FLUSH_GUEST); |
---|
| 1571 | + } else { |
---|
| 1572 | + vcpu_mask = sparse_set_to_vcpu_mask(kvm, sparse_banks, valid_bank_mask, |
---|
| 1573 | + vp_bitmap, vcpu_bitmap); |
---|
| 1574 | + |
---|
| 1575 | + kvm_make_vcpus_request_mask(kvm, KVM_REQ_TLB_FLUSH_GUEST, |
---|
| 1576 | + NULL, vcpu_mask, &hv_vcpu->tlb_flush); |
---|
| 1577 | + } |
---|
1575 | 1578 | |
---|
1576 | 1579 | ret_success: |
---|
1577 | 1580 | /* We always do full TLB flush, set rep_done = rep_cnt. */ |
---|