From nobody Wed Apr 24 19:12:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1617706317; cv=none; d=zohomail.com; s=zohoarc; b=RuPj4mEolBvefp+lkJITz+4iHyvPLXfcjy3ORap5Y6PUECzYOWjBnaLLQpA2SgKq86WheFfEwrYelV6CtF5oN6TZcUbi4o2AbrOXWffWE+ewLB/bUTrOUxmkSFWtCutpxB93yAsyK2pxjtT8sg79rZxUi+2TzEYwXVW0Aa7/Y+w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617706317; h=Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:Sender:Subject:To; bh=dvDp58NUEAmwXOA+CUb76JESQEzZ3RLgLcG2veKd+ac=; b=gDb/2sjCYJT42mpip/DNgd3W4e/Hurb959OCzFnzAoEs7iHMEIAB2z6AOw56vSGsstkp0XfW+2de8iEUj2lw1FJKloSUu8B4KoiOlPYfdbZLwxGNbvQlJfQu31T68hbNFrqTyRbYx9wxNMZE6edjSuP65+mdBq83dN0I6LczP60= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1617706317493515.2154238290899; Tue, 6 Apr 2021 03:51:57 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.105793.202332 (Exim 4.92) (envelope-from ) id 1lTjIt-00034v-JN; Tue, 06 Apr 2021 10:51:27 +0000 Received: by outflank-mailman (output) from mailman id 105793.202332; Tue, 06 Apr 2021 10:51:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lTjIt-00034o-Et; Tue, 06 Apr 2021 10:51:27 +0000 Received: by outflank-mailman (input) for mailman id 105793; Tue, 06 Apr 2021 10:51:26 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lTjIs-00034Q-PM for xen-devel@lists.xenproject.org; Tue, 06 Apr 2021 10:51:26 +0000 Received: from foss.arm.com (unknown [217.140.110.172]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTP id dd21e63e-4c1f-4a54-b146-49ebbd0fb2cf; Tue, 06 Apr 2021 10:51:26 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D4F9531B; Tue, 6 Apr 2021 03:51:25 -0700 (PDT) Received: from e125770.cambridge.arm.com (e125770.cambridge.arm.com [10.1.197.16]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4D44A3F73D; Tue, 6 Apr 2021 03:51:24 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: dd21e63e-4c1f-4a54-b146-49ebbd0fb2cf From: Luca Fancellu To: sstabellini@kernel.org, jgross@suse.com, jgrall@amazon.com Cc: boris.ostrovsky@oracle.com, tglx@linutronix.de, wei.liu@kernel.org, jbeulich@suse.com, yyankovskyi@gmail.com, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, bertrand.marquis@arm.com Subject: [PATCH] xen/evtchn: Change irq_info lock to raw_spinlock_t Date: Tue, 6 Apr 2021 11:51:04 +0100 Message-Id: <20210406105105.10141-1-luca.fancellu@arm.com> X-Mailer: git-send-email 2.17.1 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Unmask operation must be called with interrupt disabled, on preempt_rt spin_lock_irqsave/spin_unlock_irqrestore don't disable/enable interrupts, so use raw_* implementation and change lock variable in struct irq_info from spinlock_t to raw_spinlock_t Cc: stable@vger.kernel.org Fixes: 25da4618af24 ("xen/events: don't unmask an event channel when an eoi is pending") Signed-off-by: Luca Fancellu Reviewed-by: Julien Grall Reviewed-by: Wei Liu --- drivers/xen/events/events_base.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_b= ase.c index 8236e2364eeb..7bbfd58958bc 100644 --- a/drivers/xen/events/events_base.c +++ b/drivers/xen/events/events_base.c @@ -110,7 +110,7 @@ struct irq_info { unsigned short eoi_cpu; /* EOI must happen on this cpu-1 */ unsigned int irq_epoch; /* If eoi_cpu valid: irq_epoch of event */ u64 eoi_time; /* Time in jiffies when to EOI. */ - spinlock_t lock; + raw_spinlock_t lock; =20 union { unsigned short virq; @@ -312,7 +312,7 @@ static int xen_irq_info_common_setup(struct irq_info *i= nfo, info->evtchn =3D evtchn; info->cpu =3D cpu; info->mask_reason =3D EVT_MASK_REASON_EXPLICIT; - spin_lock_init(&info->lock); + raw_spin_lock_init(&info->lock); =20 ret =3D set_evtchn_to_irq(evtchn, irq); if (ret < 0) @@ -472,28 +472,28 @@ static void do_mask(struct irq_info *info, u8 reason) { unsigned long flags; =20 - spin_lock_irqsave(&info->lock, flags); + raw_spin_lock_irqsave(&info->lock, flags); =20 if (!info->mask_reason) mask_evtchn(info->evtchn); =20 info->mask_reason |=3D reason; =20 - spin_unlock_irqrestore(&info->lock, flags); + raw_spin_unlock_irqrestore(&info->lock, flags); } =20 static void do_unmask(struct irq_info *info, u8 reason) { unsigned long flags; =20 - spin_lock_irqsave(&info->lock, flags); + raw_spin_lock_irqsave(&info->lock, flags); =20 info->mask_reason &=3D ~reason; =20 if (!info->mask_reason) unmask_evtchn(info->evtchn); =20 - spin_unlock_irqrestore(&info->lock, flags); + raw_spin_unlock_irqrestore(&info->lock, flags); } =20 #ifdef CONFIG_X86 --=20 2.17.1