| .. | .. |
|---|
| 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. */ |
|---|