From nobody Tue Feb 10 04:15:24 2026 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1564137540; cv=none; d=zoho.com; s=zohoarc; b=MjM5pl5WrctJ+RuHFM92vziUulBZN+kM63LojmQPtI4LBEKZXZeNsD5qkPbGr1JVSnMsca063Bc5NlitNA8o+uq+qOt6/5RtU3hi9I52Mb9L6SkqpuYuIVgAkB3MQImRs9BXwgi4V6UD+D2arpspByDcWOlA0VG6itNf+0UWz9Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1564137540; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=EZ1cBuImb6Ap5fn61HKvU/m2TJ4b1A6M1wj/MLyZfbw=; b=Bfg7wQg7bqZeJOuEf7KcrVby08XkxNICO7I3RC6Ovc21Vc9045xS64lsL1A4fTvMRo3era4npbS/KhHZUxpCcsRFjw24klVLK7YAFIpiKEMitl2gVkF2262xsbhRAGz3/C1q72p8mKd4lv8LqBXrs8/caTgpOI9ZXtQmL3GlmRw= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) 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 1564137540595100.69495055164191; Fri, 26 Jul 2019 03:39:00 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hqxbg-0006Xt-KY; Fri, 26 Jul 2019 10:37:48 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hqxbf-0006Xi-LC for xen-devel@lists.xenproject.org; Fri, 26 Jul 2019 10:37:47 +0000 Received: from mail-lj1-x243.google.com (unknown [2a00:1450:4864:20::243]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 678e6ef2-af91-11e9-8980-bc764e045a96; Fri, 26 Jul 2019 10:37:46 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id i21so51040302ljj.3 for ; Fri, 26 Jul 2019 03:37:46 -0700 (PDT) Received: from aanisov-work.kyiv.epam.com (ll-22.209.223.85.sovam.net.ua. [85.223.209.22]) by smtp.gmail.com with ESMTPSA id m4sm9938274ljc.56.2019.07.26.03.37.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 26 Jul 2019 03:37:43 -0700 (PDT) X-Inumbo-ID: 678e6ef2-af91-11e9-8980-bc764e045a96 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+Sj40svUpTZp0FXDzpVnnnckBrBiw8PXNGcGLtUyPKE=; b=u4em/W6jRqWmOf+CYZ3d1Q3rNyyCnhsP4bkIqS0Bc27rpzcgf1ddnkGGBOtTBz/Kwv YnquHzQtRhbVjwZAfe4w6ETGxdR0sS+ZX0tVLMxszwSjoi5z1zAmqH3OOqva8UQBPBbN wgrF62Iun2BLLIVhHOCyhXEL0XMR9dMxe9GCaxELUhZsqeXmoigFCX/UvxTvLaCE9W1i dqf9QNT2TyATgcbCDEik6WMI8NgjyKGsc+/lO2rYCtE2JTytwtWsYKgQe0sFBNiuKpqY dDXVkzC6nE/KeQBVwwT6LXWu+tqPom9mqN6iLSuzagSaIrrmwMGDXZVAg78hpNnx4bJM Qwlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+Sj40svUpTZp0FXDzpVnnnckBrBiw8PXNGcGLtUyPKE=; b=N30fDrQNwMmFHlLGiG3WTYZOtaZ9oGCCdtweAbAzil8/xc92MEEtsqaHOAXZ/bm3mH Y/MLqKVymChaQM0cmrEVZstlKXTbZDq4ADzDfRyPBgzaRrR0iRLuTmGTxr/VM631c/B3 CM3Z1UYqpCKAC00RNUxzZIkRgV5YYAhWgkz4huWE5k41VDDnf5EATAjDYQsPGcKeZ0yn dXrCwctcef1DZiIM5VXj0Cr7aVDbOfKWSvwnvL+VfUAOa1yqKL4tYkUnKbfAI4IbAPe3 uAiPTeocRoj/1AWnr/15KPi3H44A79zmaRb0niCYVHAYxW+pfjGRz+Zbw3+tgWHrUvm3 4G/A== X-Gm-Message-State: APjAAAXNMbNUfBfv2+NIVHi2gXjbJg9QevElI0Fa3JzISnJ+WTrGw0bi dHXk7EqPh9seDg9ubpFMEaaJWI5Q X-Google-Smtp-Source: APXvYqwXXNpLzZGEnDDiwwHay0T5FDcaE/mLGYQOy37/tNPPR4fhRzc4ujo6laCsPVMrXFxbagdP8g== X-Received: by 2002:a2e:9593:: with SMTP id w19mr1850913ljh.69.1564137464536; Fri, 26 Jul 2019 03:37:44 -0700 (PDT) From: Andrii Anisov To: xen-devel@lists.xenproject.org Date: Fri, 26 Jul 2019 13:37:34 +0300 Message-Id: <1564137460-25629-2-git-send-email-andrii.anisov@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1564137460-25629-1-git-send-email-andrii.anisov@gmail.com> References: <1564137460-25629-1-git-send-email-andrii.anisov@gmail.com> Subject: [Xen-devel] [RFC 1/6] xen/arm: Re-enable interrupt later in the trap path X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Volodymyr Babchuk , Julien Grall , Stefano Stabellini , Andrii Anisov MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Julien Grall This makes function enter_hypervisor_head() being executed with irqs locked. Signed-off-by: Julien Grall [Andrii: add a justification commit message] Signed-off-by: Andrii Anisov --- xen/arch/arm/arm64/entry.S | 11 +++++------ xen/arch/arm/traps.c | 6 ++++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/xen/arch/arm/arm64/entry.S b/xen/arch/arm/arm64/entry.S index 97b05f5..8f28789 100644 --- a/xen/arch/arm/arm64/entry.S +++ b/xen/arch/arm/arm64/entry.S @@ -195,7 +195,6 @@ hyp_error_invalid: =20 hyp_error: entry hyp=3D1 - msr daifclr, #2 mov x0, sp bl do_trap_hyp_serror exit hyp=3D1 @@ -203,7 +202,7 @@ hyp_error: /* Traps taken in Current EL with SP_ELx */ hyp_sync: entry hyp=3D1 - msr daifclr, #6 + msr daifclr, #4 mov x0, sp bl do_trap_hyp_sync exit hyp=3D1 @@ -304,7 +303,7 @@ guest_sync_slowpath: ALTERNATIVE("bl check_pending_vserror; cbnz x0, 1f", "nop; nop", SKIP_SYNCHRONIZE_SERROR_ENTRY_EXIT) - msr daifclr, #6 + msr daifclr, #4 mov x0, sp bl do_trap_guest_sync 1: @@ -332,7 +331,7 @@ guest_fiq_invalid: =20 guest_error: entry hyp=3D0, compat=3D0 - msr daifclr, #6 + msr daifclr, #4 mov x0, sp bl do_trap_guest_serror exit hyp=3D0, compat=3D0 @@ -347,7 +346,7 @@ guest_sync_compat: ALTERNATIVE("bl check_pending_vserror; cbnz x0, 1f", "nop; nop", SKIP_SYNCHRONIZE_SERROR_ENTRY_EXIT) - msr daifclr, #6 + msr daifclr, #4 mov x0, sp bl do_trap_guest_sync 1: @@ -375,7 +374,7 @@ guest_fiq_invalid_compat: =20 guest_error_compat: entry hyp=3D0, compat=3D1 - msr daifclr, #6 + msr daifclr, #4 mov x0, sp bl do_trap_guest_serror exit hyp=3D0, compat=3D1 diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index 3103620..5a9dc66 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -2017,6 +2017,8 @@ static void enter_hypervisor_head(struct cpu_user_reg= s *regs) { struct vcpu *v =3D current; =20 + ASSERT(!local_irq_is_enabled()); + /* If the guest has disabled the workaround, bring it back on. */ if ( needs_ssbd_flip(v) ) arm_smccc_1_1_smc(ARM_SMCCC_ARCH_WORKAROUND_2_FID, 1, NULL); @@ -2051,6 +2053,7 @@ void do_trap_guest_sync(struct cpu_user_regs *regs) const union hsr hsr =3D { .bits =3D regs->hsr }; =20 enter_hypervisor_head(regs); + local_irq_enable(); =20 switch ( hsr.ec ) { @@ -2186,6 +2189,7 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs) const union hsr hsr =3D { .bits =3D regs->hsr }; =20 enter_hypervisor_head(regs); + local_irq_enable(); =20 switch ( hsr.ec ) { @@ -2224,6 +2228,7 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs) void do_trap_hyp_serror(struct cpu_user_regs *regs) { enter_hypervisor_head(regs); + local_irq_enable(); =20 __do_trap_serror(regs, VABORT_GEN_BY_GUEST(regs)); } @@ -2231,6 +2236,7 @@ void do_trap_hyp_serror(struct cpu_user_regs *regs) void do_trap_guest_serror(struct cpu_user_regs *regs) { enter_hypervisor_head(regs); + local_irq_enable(); =20 __do_trap_serror(regs, true); } --=20 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel