Xiaojian,
For generating the patches for kvm module, you needs to use kvm.git as
development tree instead of kvm's release tarball. The source files in release
tarball have been hacked before release out, and maybe different with kernel's.
So please clone kvm.git through git.kernel.org first and re-create the
patchset.
Xiantao
刘晓建 wrote:
> the KVM79 doesn't support the case of running pci passthrough on a
> machine w/o VT-d. The following fixes it
> ---
> diff -uNr kvm-79/kernel/x86/kvm_main.c
> kvm-79-fixed/kernel/x86/kvm_main.c --- kvm-79/kernel/x86/kvm_main.c
> 2008-11-12 20:24:04.000000000 +0800 +++
> kvm-79-fixed/kernel/x86/kvm_main.c 2008-12-12 15:56:19.000000000
> +0800 @@ -1059,11 +1061,22 @@ struct page *gfn_to_page(struct kvm
> *kvm, gfn_t gfn) {
> pfn_t pfn;
> + pfn_t reserved_top = 0;
>
> pfn = gfn_to_pfn(kvm, gfn);
> if (!kvm_is_mmio_pfn(pfn))
> return pfn_to_page(pfn);
>
> +#ifdef CONFIG_RESERVE_PHYSICAL_START
> + reserved_top = __PHYSICAL_START>>PAGE_SHIFT;
> +#else
> +#warning if you want to use pci passthrough w/o mechanisms like
> VT-d, +#warning please define CONFIG_RESERVE_PHYSICAL_START and
> __PHYSICAL_START, +#warning when compiling your linux kernel!
> +#endif
> + if(pfn < reserved_top)
> + return pfn_to_page(pfn);
> +
> WARN_ON(kvm_is_mmio_pfn(pfn));
>
> get_page(bad_page);
>
>
> Xiaojian Liu