On 10/05/2011 09:37 AM, Alexander Graf wrote:
> diff --git a/arch/powerpc/kvm/e500_tlb.c b/arch/powerpc/kvm/e500_tlb.c
> index ec17148..1dd96a9 100644
> --- a/arch/powerpc/kvm/e500_tlb.c
> +++ b/arch/powerpc/kvm/e500_tlb.c
> @@ -24,6 +24,7 @@
> #include <linux/sched.h>
> #include <linux/rwsem.h>
> #include <linux/vmalloc.h>
> +#include <linux/hugetlb.h>
> #include <asm/kvm_ppc.h>
> #include <asm/kvm_e500.h>
>
> @@ -673,12 +674,31 @@ static inline void kvmppc_e500_shadow_map(struct
> kvmppc_vcpu_e500 *vcpu_e500,
> pfn &= ~(tsize_pages - 1);
> break;
> }
> + } else if (vma && hva >= vma->vm_start &&
> + (vma->vm_flags & VM_HUGETLB)) {
> + unsigned long psize = vma_kernel_pagesize(vma);
> +
> + tsize = (gtlbe->mas1 & MAS1_TSIZE_MASK) >>
> + MAS1_TSIZE_SHIFT;
> +
> + /*
> + * Take the largest page size that satisfies both host
> + * and guest mapping
> + */
> + tsize = min(__ilog2(psize) - 10, tsize);
Any reason for __ilog2() rather than ilog2()? Shouldn't make a
difference, just curious about avoiding the public interface.
Either way,
Acked-by: Scott Wood <[email protected]>
-Scott
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html