Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2838962pxb; Mon, 1 Nov 2021 02:57:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx9KxPqDEMpGLKdJ9PvyVEaPHSG7p8bOhwrbFFfzu8u3x8/gdPIFDavAp/rV5lfCL2w5XNl X-Received: by 2002:aa7:ccc1:: with SMTP id y1mr40437004edt.177.1635760631116; Mon, 01 Nov 2021 02:57:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635760631; cv=none; d=google.com; s=arc-20160816; b=zd+0ty8TqUEkPW/z+gygPnfP1at9GFxCpaVPnX94LKdpKni2HIMRgran5OX5mqcBNn GNC06W0pDk80Wgcfx0+yBjSQh70BR/Q5625pe6u4zTMfHGUOr3gW1Okze2AbZo2yGAM7 JlZTiU2V/X1goqznquOt7yh43BlDUBuY18F13p+j1JkGRoOv0o7OOc0/riTApAlLuwtP 2JSI+j8WAvTfphRxVb3/ST8yQd8+Chc506zZ6QOSWs94CfZ0OhA9dhmlLYHcq32tPpNy poIR2I+dzfBm3MxfSBVHkgxT3T6L4tnMNEBSMRTaRkGzsQ2Y1eghJc7ebqFdyXpW1vuG q+CA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=NdJbjryf2tfSzWGrsbDvVdaoUm9RYFFEk1zSWtaTtrE=; b=cPVimmOPxcV413zVfk6Ed2KK9H7r3+rBbqPtNMEW22DVhDnukK6zPIgMPJZLzeSiiW DOCp3YBrjAK0mXx/X8Nm1rh4upF8fORks8o99iY+KPH1nGIppfuRr82I2QO+Es1LhNER fi3S1mcobOqdCcxLAmio1c0oysv8U+P0SBD0I69wztkdOL3rxMpCTzWf6C1qM0gmDMsh SoZ5gMprUxWSHLIDp6fbcDzKzuSH1V0cLXqx90ACJny3DZBj+Q86Kx2EQxV+dBSU2k16 wQIwfUPmwyu5/0S3dB3gwSNefjZxlrSPHMv1nxdIFYfPALi7zjHAxqu6cWqZ/DYrH/4h 5mUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="MHW/Qw2H"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id sa24si5611408ejc.312.2021.11.01.02.56.47; Mon, 01 Nov 2021 02:57:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="MHW/Qw2H"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234950AbhKAJx2 (ORCPT + 99 others); Mon, 1 Nov 2021 05:53:28 -0400 Received: from mail.kernel.org ([198.145.29.99]:51432 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234781AbhKAJtD (ORCPT ); Mon, 1 Nov 2021 05:49:03 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7A4C261246; Mon, 1 Nov 2021 09:31:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1635759096; bh=0zO6/pKzcroGcV39ggF7ZlyXD0bqtgGL0XJAf5HyEeI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MHW/Qw2H8JWwe6Xvq2ojbI6wpDt59p8POUSv/nw5kHQhaU6DKoCdPNra2xOYhu5da s2bhUFCyA0WsxuYBkz8qQRJrkTAhheJjoQ4tyXCEtA/BcVgkma/LHL3nq07QXS+Zfg KQpaxjE064d9IPUivgLQ6EhV9/rV1fjnv8uKEYEg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Halil Pasic , Christian Borntraeger , Michael Mueller , Claudio Imbrenda , Sasha Levin Subject: [PATCH 5.14 114/125] KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu Date: Mon, 1 Nov 2021 10:18:07 +0100 Message-Id: <20211101082554.641145064@linuxfoundation.org> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211101082533.618411490@linuxfoundation.org> References: <20211101082533.618411490@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Halil Pasic [ Upstream commit 0e9ff65f455dfd0a8aea5e7843678ab6fe097e21 ] Changing the deliverable mask in __airqs_kick_single_vcpu() is a bug. If one idle vcpu can't take the interrupts we want to deliver, we should look for another vcpu that can, instead of saying that we don't want to deliver these interrupts by clearing the bits from the deliverable_mask. Fixes: 9f30f6216378 ("KVM: s390: add gib_alert_irq_handler()") Signed-off-by: Halil Pasic Reviewed-by: Christian Borntraeger Reviewed-by: Michael Mueller Reviewed-by: Claudio Imbrenda Link: https://lore.kernel.org/r/20211019175401.3757927-3-pasic@linux.ibm.com Signed-off-by: Christian Borntraeger Signed-off-by: Sasha Levin --- arch/s390/kvm/interrupt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c index 16256e17a544..ee9d052476b5 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c @@ -3053,13 +3053,14 @@ static void __airqs_kick_single_vcpu(struct kvm *kvm, u8 deliverable_mask) int vcpu_idx, online_vcpus = atomic_read(&kvm->online_vcpus); struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; struct kvm_vcpu *vcpu; + u8 vcpu_isc_mask; for_each_set_bit(vcpu_idx, kvm->arch.idle_mask, online_vcpus) { vcpu = kvm_get_vcpu(kvm, vcpu_idx); if (psw_ioint_disabled(vcpu)) continue; - deliverable_mask &= (u8)(vcpu->arch.sie_block->gcr[6] >> 24); - if (deliverable_mask) { + vcpu_isc_mask = (u8)(vcpu->arch.sie_block->gcr[6] >> 24); + if (deliverable_mask & vcpu_isc_mask) { /* lately kicked but not yet running */ if (test_and_set_bit(vcpu_idx, gi->kicked_mask)) return; -- 2.33.0