Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2823144pxb; Mon, 1 Nov 2021 02:33:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwrioigqRudZApy/6HZBFhm3KL0wRnCSc3TUYoi6SZJjZE4LAimnSQSvj/jH4XuTYSWWqwS X-Received: by 2002:a05:6638:40a:: with SMTP id q10mr3515911jap.62.1635759198921; Mon, 01 Nov 2021 02:33:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635759198; cv=none; d=google.com; s=arc-20160816; b=YJXFZVYQj/20SPTcWoOH1t2A0AEaVPTy8oSklINRhk7DvjwZ9HIQaLh42n7Qy269ZY ndwuUg2EFJ8QPy/0B06TdaP1s9RPPwy2jnTJotXWWm45Uo1ayBF7ybf/LGwnppR45NlP NFX/bn7mynpoFx85DjtwmvKWQLh9sY7RHy75O3LmprHPMuXloUAOQf3E85IbG4zVG19c 9jhC5K5RqUjmZQsS62Ai8WcZoDOHqnYkvZYC4Z1yrub6/5XQsMWUFFjSju+NlW+9yW1o pSrLF6VV4JzErThD3tjyA0SywrDlLepAsVfpcEU0p2LQxsjYZCHVEeNT/2Nns5s1piIg 4KuA== 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=JUqB0E8Jh6loSkAa6o4i/52dUcvUl4G+wfcKxB0OIBo=; b=zqovrmKfpA+3iNE5S8Zg4hxj60sngMFex4pBHM2n/MxZN0QL2LI6344oGFmaTBT5cT tJl3l6maAL5rGd+O6Za9mB3qT/MVQ02v9rdjbjS0tJS2Pa3p8/3oUSUlv8o6HLhF5nYe hEtCLyywU1p+6VyEbAsUEe7LFjP9NxwxzUeVXmZMktTKZqOG/QjQjPpddKqjSiRbR6MG J26Qzx1KNKefHC3El/NeSc8izotEf93MdXfd9cYIpyvXgMTQsW7g6YDjDrPmVyRxb9XJ v8NeD8F6l04GeGyboKZN8/YD3BhUVBcYMurQ4shUldI/haI13xNVfE+9kmWG8eaMtrvB 4P8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=C6CHNAQq; 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 m3si22810891ilu.139.2021.11.01.02.33.07; Mon, 01 Nov 2021 02:33:18 -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=C6CHNAQq; 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 S233087AbhKAJer (ORCPT + 99 others); Mon, 1 Nov 2021 05:34:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:37498 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233023AbhKAJad (ORCPT ); Mon, 1 Nov 2021 05:30:33 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8200161154; Mon, 1 Nov 2021 09:24:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1635758649; bh=dxk7TbGopJyzyNO3eRiRqncp7nU/TcTaKlKJOAs5gZ8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C6CHNAQqqHrmYwtbKTnEzWidgDBMQtiyJ+Ghv/bsse7M9leb5RoJvKtTgyQEP/kPW WLsipTcqFoMPTU3+i7M+UVOgpfAaDbusOECec6AjhHfG8sp2KjbOnpRnqXp5ndAI1G dqsA/pW0BqFKhNIjcCIplCJjGz1/nOktpk0WXW50= 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.4 50/51] KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu Date: Mon, 1 Nov 2021 10:17:54 +0100 Message-Id: <20211101082512.103567222@linuxfoundation.org> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211101082500.203657870@linuxfoundation.org> References: <20211101082500.203657870@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 fa9483aa4f57..fd73a8aa89d2 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c @@ -2987,13 +2987,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