This is a note to let you know that I've just added the patch titled

    KVM: ARM/arm64: avoid returning negative error code as bool

to the 3.14-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     kvm-arm-arm64-avoid-returning-negative-error-code-as-bool.patch
and it can be found in the queue-3.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From 18d457661fb9fa69352822ab98d39331c3d0e571 Mon Sep 17 00:00:00 2001
From: Will Deacon <[email protected]>
Date: Tue, 26 Aug 2014 15:13:22 +0100
Subject: KVM: ARM/arm64: avoid returning negative error code as bool

From: Will Deacon <[email protected]>

commit 18d457661fb9fa69352822ab98d39331c3d0e571 upstream.

is_valid_cache returns true if the specified cache is valid.
Unfortunately, if the parameter passed it out of range, we return
-ENOENT, which ends up as true leading to potential hilarity.

This patch returns false on the failure path instead.

Cc: Christoffer Dall <[email protected]>
Cc: Marc Zyngier <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
Signed-off-by: Christoffer Dall <[email protected]>
Signed-off-by: Shannon Zhao <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 arch/arm/kvm/coproc.c     |    2 +-
 arch/arm64/kvm/sys_regs.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

--- a/arch/arm/kvm/coproc.c
+++ b/arch/arm/kvm/coproc.c
@@ -742,7 +742,7 @@ static bool is_valid_cache(u32 val)
        u32 level, ctype;
 
        if (val >= CSSELR_MAX)
-               return -ENOENT;
+               return false;
 
        /* Bottom bit is Instruction or Data bit.  Next 3 bits are level. */
         level = (val >> 1);
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -836,7 +836,7 @@ static bool is_valid_cache(u32 val)
        u32 level, ctype;
 
        if (val >= CSSELR_MAX)
-               return -ENOENT;
+               return false;
 
        /* Bottom bit is Instruction or Data bit.  Next 3 bits are level. */
        level = (val >> 1);


Patches currently in stable-queue which might be from [email protected] are

queue-3.14/arm-kvm-user_mem_abort-support-stage-2-mmio-page-mapping.patch
queue-3.14/kvm-arm-arm64-avoid-returning-negative-error-code-as-bool.patch
queue-3.14/kvm-arm-arm64-fix-non-const-declaration-of-function-returning-const.patch
queue-3.14/kvm-vgic-return-int-instead-of-bool-when-checking-i-o-ranges.patch
queue-3.14/kvm-arm-arm64-fix-broken-__percpu-annotation.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to