From patchwork Wed Sep 1 12:28:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 505080 Delivered-To: patch@linaro.org Received: by 2002:a02:8629:0:0:0:0:0 with SMTP id e38csp224417jai; Wed, 1 Sep 2021 05:52:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwtGifOUagohE+Ex9wzYMfDw24Ysdm9Ph7lnNlhVcTfx6Y9xGA5RmD8ffRH1E809L3V8Ex2 X-Received: by 2002:a92:d646:: with SMTP id x6mr24867642ilp.280.1630500634762; Wed, 01 Sep 2021 05:50:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630500634; cv=none; d=google.com; s=arc-20160816; b=O/YRF9wo3mBZdbkAIjvXgjaTasnUrzMvwZUhVSyIkGrTtCAq/he0L/IvIJwsiTbCGe dN241jGF/5p8e4Z3WzSMBITIDZ1KHzU9hu41OTVJ9NOnZFAOiwEAPx1nWIRX+JzFd2S4 Blz+0MRr5QO7jt8lpGnSmvnJ1uMxe5fF6S8ShT4bp6d6FAchHjXzmS99CNyXagRKbxWX l5EJNYSZ2mahjUgKvGiFElyLNLxy2BEv6lx18yFZ34gkNY2O0uE//NXNTLdrM6xwgwVu d69eLNLTK2GsiwL7GXgS41q5jJSGMRs27Rt9Wdri6Ohqn7nzYrHE6oqHIb+NRRQQ6nHn cwUQ== 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=uOXiRtxOk2z0a4b0uO2AfryOrzHeuS0lCxkrVj4zZI8=; b=X+8nt8IPS+DlB5fi3bNr/Vl67Zo1uaIWaV4xoLbRKW4sfFDrf1OiaBT+S8pn/SU861 53JFmgcVK1uvK1igw6GXrvhUqoiIdIosPmnTWMqT1PIv/WpizHMzBpw/n3JJqzO3bsib P7Y/7Y1HBLWF09V6Z53Iz19Yyctt4MIajns/Hc4u4Zfua1Z97S8G0Icu2IKvmYjv760s nuEwyoB5qUAjb+mRf1TKfjPHRQIoLfSabzwwYfzHJuYLyTm5sL8kd76JYSBdlYpS/STI UIyylkrAK0b9IOWFkQA5L5dnpflz3ukOtszTD8PsmKmPEX6IDt2ubxu1BXS4/sGbdw94 Aq0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=j7qtVvcv; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 l5si1116439ioa.54.2021.09.01.05.50.34; Wed, 01 Sep 2021 05:50:34 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=j7qtVvcv; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 S1345383AbhIAMvZ (ORCPT + 11 others); Wed, 1 Sep 2021 08:51:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:53708 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346422AbhIAMuN (ORCPT ); Wed, 1 Sep 2021 08:50:13 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id DCB0561100; Wed, 1 Sep 2021 12:41:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1630500104; bh=RraiY9EupY4eMBstcRZsBdE0zqlScNj3R6G7l/dTIn8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j7qtVvcveoVp0/eRXkJ7jn7QXJ4OPjucytnb2mnw2ojjvzp150tdm2PO9VnuOJrIe /fU0GL5BgSiJbFVHxbznaPZRfAlvVuPT2IeJFJS58raKzMGvivPDOfeiMbdaObC0/L of+2ieqPM+BZhydWtZpeAql6up0N8VtEAqu4Ga20= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mark Rutland , Catalin Marinas , Marc Zyngier , Oliver Upton , Will Deacon , Sasha Levin Subject: [PATCH 5.13 097/113] arm64: initialize all of CNTHCTL_EL2 Date: Wed, 1 Sep 2021 14:28:52 +0200 Message-Id: <20210901122305.187252773@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210901122301.984263453@linuxfoundation.org> References: <20210901122301.984263453@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Mark Rutland [ Upstream commit bde8fff82e4a4b0f000dbf4d5eadab2079be0b56 ] In __init_el2_timers we initialize CNTHCTL_EL2.{EL1PCEN,EL1PCTEN} with a RMW sequence, leaving all other bits UNKNOWN. In general, we should initialize all bits in a register rather than using an RMW sequence, since most bits are UNKNOWN out of reset, and as new bits are added to the reigster their reset value might not result in expected behaviour. In the case of CNTHCTL_EL2, FEAT_ECV added a number of new control bits in previously RES0 bits, which reset to UNKNOWN values, and may cause issues for EL1 and EL0: * CNTHCTL_EL2.ECV enables the CNTPOFF_EL2 offset (which itself resets to an UNKNOWN value) at EL0 and EL1. Since the offset could reset to distinct values across CPUs, when the control bit resets to 1 this could break timekeeping generally. * CNTHCTL_EL2.{EL1TVT,EL1TVCT} trap EL0 and EL1 accesses to the EL1 virtual timer/counter registers to EL2. When reset to 1, this could cause unexpected traps to EL2. Initializing these bits to zero avoids these problems, and all other bits in CNTHCTL_EL2 other than EL1PCEN and EL1PCTEN can safely be reset to zero. This patch ensures we initialize CNTHCTL_EL2 accordingly, only setting EL1PCEN and EL1PCTEN, and setting all other bits to zero. Signed-off-by: Mark Rutland Cc: Catalin Marinas Cc: Marc Zyngier Cc: Oliver Upton Cc: Will Deacon Reviewed-by: Oliver Upton Acked-by: Marc Zyngier Link: https://lore.kernel.org/r/20210818161535.52786-1-mark.rutland@arm.com Signed-off-by: Will Deacon Signed-off-by: Sasha Levin --- arch/arm64/include/asm/el2_setup.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- 2.30.2 diff --git a/arch/arm64/include/asm/el2_setup.h b/arch/arm64/include/asm/el2_setup.h index 21fa330f498d..b83fb24954b7 100644 --- a/arch/arm64/include/asm/el2_setup.h +++ b/arch/arm64/include/asm/el2_setup.h @@ -33,8 +33,7 @@ * EL2. */ .macro __init_el2_timers - mrs x0, cnthctl_el2 - orr x0, x0, #3 // Enable EL1 physical timers + mov x0, #3 // Enable EL1 physical timers msr cnthctl_el2, x0 msr cntvoff_el2, xzr // Clear virtual offset .endm