KVM: PPC: e500: fix couple of shift operations on 64 bits
authorTudor Laurentiu <b10716@freescale.com>
Thu, 1 Oct 2015 12:58:03 +0000 (15:58 +0300)
committerPaul Mackerras <paulus@samba.org>
Thu, 15 Oct 2015 04:59:19 +0000 (15:59 +1100)
Fix couple of cases where we shift left a 32-bit
value thus might get truncated results on 64-bit
targets.

Signed-off-by: Laurentiu Tudor <Laurentiu.Tudor@freescale.com>
Suggested-by: Scott Wood <scotttwood@freescale.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kvm/e500_mmu_host.c

index 4d33e19..5e2102c 100644 (file)
@@ -406,7 +406,7 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 
                        for (; tsize > BOOK3E_PAGESZ_4K; tsize -= 2) {
                                unsigned long gfn_start, gfn_end;
-                               tsize_pages = 1 << (tsize - 2);
+                               tsize_pages = 1UL << (tsize - 2);
 
                                gfn_start = gfn & ~(tsize_pages - 1);
                                gfn_end = gfn_start + tsize_pages;
@@ -447,7 +447,7 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
        }
 
        if (likely(!pfnmap)) {
-               tsize_pages = 1 << (tsize + 10 - PAGE_SHIFT);
+               tsize_pages = 1UL << (tsize + 10 - PAGE_SHIFT);
                pfn = gfn_to_pfn_memslot(slot, gfn);
                if (is_error_noslot_pfn(pfn)) {
                        if (printk_ratelimit())