lkml.org 
[lkml]   [2015]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.2 092/120] KVM: PPC: Book3S HV: Exit on H_DOORBELL if HOST_IPI is set
    Date
    4.2-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: "Gautham R. Shenoy" <ego@linux.vnet.ibm.com>

    commit 06554d9f6cc8f0b5ec903db19726a15dfc7b09d6 upstream.

    The code that handles the case when we receive a H_DOORBELL interrupt
    has a comment which says "Hypervisor doorbell - exit only if host IPI
    flag set". However, the current code does not actually check if the
    host IPI flag is set. This is due to a comparison instruction that
    got missed.

    As a result, the current code performs the exit to host only
    if some sibling thread or a sibling sub-core is exiting to the
    host. This implies that, an IPI sent to a sibling core in
    (subcores-per-core != 1) mode will be missed by the host unless the
    sibling core is on the exit path to the host.

    This patch adds the missing comparison operation which will ensure
    that when HOST_IPI flag is set, we unconditionally exit to the host.

    Fixes: 66feed61cdf6
    Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
    Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/powerpc/kvm/book3s_hv_rmhandlers.S | 1 +
    1 file changed, 1 insertion(+)

    --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
    +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
    @@ -1127,6 +1127,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
    cmpwi r12, BOOK3S_INTERRUPT_H_DOORBELL
    bne 3f
    lbz r0, HSTATE_HOST_IPI(r13)
    + cmpwi r0, 0
    beq 4f
    b guest_exit_cont
    3:



    \
     
     \ /
      Last update: 2015-09-19 20:21    [W:3.367 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site