Lines Matching refs:flush
134 struct hyperv_tlb_flush *flush; in hv_vm_tlb_flush() local
147 flush = *VMBUS_PCPU_PTR(sc, cpu_mem, curcpu); in hv_vm_tlb_flush()
148 if (flush == NULL) in hv_vm_tlb_flush()
180 flush->processor_mask = 0; in hv_vm_tlb_flush()
185 flush->address_space = 0; in hv_vm_tlb_flush()
186 flush->flags = HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES; in hv_vm_tlb_flush()
189 flush->address_space = cr3; in hv_vm_tlb_flush()
190 flush->address_space &= ~CR3_PCID_MASK; in hv_vm_tlb_flush()
191 flush->flags = 0; in hv_vm_tlb_flush()
194 flush->flags |= HV_FLUSH_ALL_PROCESSORS; in hv_vm_tlb_flush()
204 set_bit(vcpu, &flush->processor_mask); in hv_vm_tlb_flush()
206 if (!flush->processor_mask ) in hv_vm_tlb_flush()
209 max_gvas = (PAGE_SIZE - sizeof(*flush)) / sizeof(flush->gva_list[0]); in hv_vm_tlb_flush()
211 flush->flags |= HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY; in hv_vm_tlb_flush()
213 (uint64_t)flush, (uint64_t)NULL); in hv_vm_tlb_flush()
216 (uint64_t)flush, (uint64_t)NULL); in hv_vm_tlb_flush()
218 gva_n = fill_gva_list(flush->gva_list, addr1, addr2); in hv_vm_tlb_flush()
221 gva_n, 0, (uint64_t)flush, (uint64_t)NULL); in hv_vm_tlb_flush()
254 struct hv_tlb_flush_ex *flush; in hv_flush_tlb_others_ex() local
257 flush = *VMBUS_PCPU_PTR(sc, cpu_mem, curcpu); in hv_flush_tlb_others_ex()
266 flush->address_space = 0; in hv_flush_tlb_others_ex()
267 flush->flags = HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES; in hv_flush_tlb_others_ex()
270 flush->address_space = cr3; in hv_flush_tlb_others_ex()
271 flush->address_space &= ~CR3_PCID_MASK; in hv_flush_tlb_others_ex()
272 flush->flags = 0; in hv_flush_tlb_others_ex()
275 flush->hv_vp_set.valid_bank_mask = 0; in hv_flush_tlb_others_ex()
277 flush->hv_vp_set.format = HV_GENERIC_SET_SPARSE_4K; in hv_flush_tlb_others_ex()
278 nr_bank = hv_cpumask_to_vpset(&flush->hv_vp_set, &mask, sc); in hv_flush_tlb_others_ex()
286 max_gvas = (PAGE_SIZE - sizeof(*flush) - nr_bank * in hv_flush_tlb_others_ex()
287 sizeof(flush->hv_vp_set.bank_contents[0])) / in hv_flush_tlb_others_ex()
288 sizeof(flush->hv_vp_set.bank_contents[0]); in hv_flush_tlb_others_ex()
291 flush->flags |= HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY; in hv_flush_tlb_others_ex()
294 0, nr_bank, (uint64_t)flush, (uint64_t)NULL); in hv_flush_tlb_others_ex()
299 0, nr_bank, (uint64_t)flush, (uint64_t)NULL); in hv_flush_tlb_others_ex()
301 gva_n = fill_gva_list(&flush->hv_vp_set.bank_contents[nr_bank], in hv_flush_tlb_others_ex()
305 gva_n, nr_bank, (uint64_t)flush, (uint64_t)NULL); in hv_flush_tlb_others_ex()