Il 05/11/2013 15:04, Gleb Natapov ha scritto: > It was used in conjunction with KVM_SET_MEMORY_REGION ioctl which was > removed by b74a07beed0 in 2010, QEMU stopped using it in 2008, so > it is time to remove the code finally. > > Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> I think it is usable (perhaps not useful...) on its own, though. It is just 40 lines of self-contained code, keeping it doesn't do any harm. Paolo > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index 82c4047..a42f019 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -2524,44 +2524,12 @@ out: > } > #endif > > -static int kvm_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) > -{ > - struct page *page[1]; > - unsigned long addr; > - int npages; > - gfn_t gfn = vmf->pgoff; > - struct kvm *kvm = vma->vm_file->private_data; > - > - addr = gfn_to_hva(kvm, gfn); > - if (kvm_is_error_hva(addr)) > - return VM_FAULT_SIGBUS; > - > - npages = get_user_pages(current, current->mm, addr, 1, 1, 0, page, > - NULL); > - if (unlikely(npages != 1)) > - return VM_FAULT_SIGBUS; > - > - vmf->page = page[0]; > - return 0; > -} > - > -static const struct vm_operations_struct kvm_vm_vm_ops = { > - .fault = kvm_vm_fault, > -}; > - > -static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma) > -{ > - vma->vm_ops = &kvm_vm_vm_ops; > - return 0; > -} > - > static struct file_operations kvm_vm_fops = { > .release = kvm_vm_release, > .unlocked_ioctl = kvm_vm_ioctl, > #ifdef CONFIG_COMPAT > .compat_ioctl = kvm_vm_compat_ioctl, > #endif > - .mmap = kvm_vm_mmap, > .llseek = noop_llseek, > }; > > -- > Gleb. > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html