From patchwork Mon Apr 15 12:03:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Zyngier X-Patchwork-Id: 10900611 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CBD5D1390 for ; Mon, 15 Apr 2019 12:04:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AE824284C8 for ; Mon, 15 Apr 2019 12:04:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A0B0628701; Mon, 15 Apr 2019 12:04:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5003B286B5 for ; Mon, 15 Apr 2019 12:04:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=5jeoVCWaTYh0OBwcyZLDEg8Hv5dtZm8tFbZehuvGjB8=; b=TuVxR9nkKx7+Rx cKjdYduCIdappekKyePg6kHK0xu46k5hVFi0lV+Cci7V5WO0p6Y4xbi3b5R8gVnajWcwltEttNT8o sHYhgEW1CbsYyoXzRpL3lPniFN0/kRRLlg4VEHXO9G0wGM8iZv2uQabvtMUsdgNGTeeR8McsZxNZZ T6Hhre0FuFxunPf+29jGwFuKU04xuxigt3otgDtF00//L7GI3C0245nFFa7qBxmZ2azMa2oepvQ5Y vTWILSClZuE9stHaFQVg2XAtahIAWw1RidMNNz50FxI2KLnoBK60GpAA3qeGlq90t9Xp/akJ2NCxM Pk8oJG4Fl7NpHRKVl+WQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hG0LS-0003jX-KE; Mon, 15 Apr 2019 12:04:18 +0000 Received: from foss.arm.com ([217.140.101.70]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hG0LP-0003il-4Z for linux-arm-kernel@lists.infradead.org; Mon, 15 Apr 2019 12:04:16 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6A0FF80D; Mon, 15 Apr 2019 05:04:14 -0700 (PDT) Received: from filthy-habits.cambridge.arm.com (filthy-habits.cambridge.arm.com [10.1.196.92]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3633B3F706; Mon, 15 Apr 2019 05:04:13 -0700 (PDT) From: Marc Zyngier To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 0/4] arm64: Rework handling of erratum 1188873 Date: Mon, 15 Apr 2019 13:03:50 +0100 Message-Id: <20190415120354.148052-1-marc.zyngier@arm.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190415_050415_185782_5992288E X-CRM114-Status: GOOD ( 11.17 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Catalin Marinas , Daniel Lezcano , Will Deacon , Robin Murphy Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP When the handling of erratum 1188873 was merged, it was decided that we'd treat both AArch32 and AArch64 equally by trapping CNTVCT. It turns out that users of such HW feel that the overhead placed on AArch64 userspace is unacceptable, so a less invasive solution had to be investigated. Instead of configuring the trapping once and for all, we switch it on and off on exiting to EL0, depending on whether we have a 32bit task or not. Hopefully the overhead is minimal for non-affected cores. We also take this opportunity to apply the same workaround to Neoverse-N1, which suffers from the same erratum in its early revisions. * From v1: - Simplified entry.S code following Robin's suggestion - Renumbered labels in kernel_exit - Didn't use the ARCH_TIMER_USR_VCT_ACCESS_EN macro, as it would create quite a lot of churn in include/clocksource/arm_arch_timer.h - Added Daniel's ack Marc Zyngier (4): arm64: Restrict ARM64_ERRATUM_1188873 mitigation to AArch32 arm64: Make ARM64_ERRATUM_1188873 depend on COMPAT arm64: Add part number for Neoverse N1 arm64: Apply ARM64_ERRATUM_1188873 to Neoverse-N1 arch/arm64/Kconfig | 12 +++++++----- arch/arm64/include/asm/cputype.h | 2 ++ arch/arm64/kernel/cpu_errata.c | 13 +++++++++++-- arch/arm64/kernel/entry.S | 21 +++++++++++++++++++-- drivers/clocksource/arm_arch_timer.c | 15 --------------- 5 files changed, 39 insertions(+), 24 deletions(-)