Patchwork KVM: PPC: Book3s HV: Fix tlbie compile error

login
register
mail settings
Submitter Alexander Graf
Date June 11, 2014, 3:16 p.m.
Message ID <1402499762-34560-1-git-send-email-agraf@suse.de>
Download mbox | patch
Permalink /patch/358742/
State New
Headers show

Comments

Alexander Graf - June 11, 2014, 3:16 p.m.
Some compilers complain about uninitialized variables in the compute_tlbie_rb
function. When you follow the code path you'll realize that we'll never get
to that point, but the compiler isn't all that smart.

So just default to 4k page sizes for everything, making the compiler happy
and the code slightly easier to read.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 arch/powerpc/include/asm/kvm_book3s_64.h | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
Paul Mackerras - June 12, 2014, 3:46 a.m.
On Wed, Jun 11, 2014 at 05:16:02PM +0200, Alexander Graf wrote:
> Some compilers complain about uninitialized variables in the compute_tlbie_rb
> function. When you follow the code path you'll realize that we'll never get
> to that point, but the compiler isn't all that smart.
> 
> So just default to 4k page sizes for everything, making the compiler happy
> and the code slightly easier to read.
> 
> Signed-off-by: Alexander Graf <agraf@suse.de>

Acked-by: Paul Mackerras <paulus@samba.org>
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/arch/powerpc/include/asm/kvm_book3s_64.h b/arch/powerpc/include/asm/kvm_book3s_64.h
index fddb72b..c7871f3 100644
--- a/arch/powerpc/include/asm/kvm_book3s_64.h
+++ b/arch/powerpc/include/asm/kvm_book3s_64.h
@@ -110,16 +110,12 @@  static inline int __hpte_actual_psize(unsigned int lp, int psize)
 static inline unsigned long compute_tlbie_rb(unsigned long v, unsigned long r,
 					     unsigned long pte_index)
 {
-	int b_psize, a_psize;
+	int b_psize = MMU_PAGE_4K, a_psize = MMU_PAGE_4K;
 	unsigned int penc;
 	unsigned long rb = 0, va_low, sllp;
 	unsigned int lp = (r >> LP_SHIFT) & ((1 << LP_BITS) - 1);
 
-	if (!(v & HPTE_V_LARGE)) {
-		/* both base and actual psize is 4k */
-		b_psize = MMU_PAGE_4K;
-		a_psize = MMU_PAGE_4K;
-	} else {
+	if (v & HPTE_V_LARGE) {
 		for (b_psize = 0; b_psize < MMU_PAGE_COUNT; b_psize++) {
 
 			/* valid entries have a shift value */