Amit Shah wrote: > >>> + if (is_error_page(host_page)) { >>> + printk(KERN_INFO "%s: gfn %p not valid\n", >>> + __func__, (void *)page_gfn); >>> + r = -1; >>> >> r = -1 is not really informative. Better use some meaningful error. >> > > The error's going to the guest. The guest, as we know, has already done a > successful DMA allocation. Something went wrong in the hypercall, and we > don't know why (bad page). Any kind of error here isn't going to be > intelligible to the guest anyway. It's mostly a host thing if we ever hit > this. > > If the guest is not able to handle it, why bother returning an error? Better to kill it. But in any case, -1 is not a good error number. >>> + if (find_pci_pt_dev(&vcpu->kvm->arch.pci_pt_dev_head, >>> + &pci_pt_info, 0, KVM_PT_SOURCE_ASSIGN)) >>> + r++; /* We have assigned the device */ >>> + >>> + kunmap(host_page); >>> >> better use atomic mappings here. >> > > We can't use atomic mappings for guest pages. They can be swapped out. > kmap()ed pages can't be swapped out either. The atomic in kmap_atomic() only refers to the context in which the pages are used. Atmoic kmaps are greatly preferable to the nonatomic ones. -- Any sufficiently difficult bug is indistinguishable from a feature. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization