Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2282imu; Mon, 26 Nov 2018 07:13:15 -0800 (PST) X-Google-Smtp-Source: AFSGD/UpAwjZlEj2DcDgmHuXHXclzki2hmF0ZM0bpZJiqgi3lsKTETL4BVK1tlbW5AvznYnhJ/xX X-Received: by 2002:a17:902:4025:: with SMTP id b34mr28334429pld.181.1543245195435; Mon, 26 Nov 2018 07:13:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543245195; cv=none; d=google.com; s=arc-20160816; b=ouA3laJcG8Vl5MF6XmJDH7T99weUjLfrQ5t6daUi/iEngrejsyKGB78sZwoVq3Wgfq bYCtPCo1xun+YpAA2DbbitBHULGUmRGs64lBy0CBdKUO2E+eWFNUqg+uxLrU5Gu8vKDP ST4oSYpK/YYOjYtcRns8DW4YOd1LDOCj9ZT6fp0grwk9ZzXxBICOeoTPoBMnc0ASHHlK s08ODlGOWZJi6O3vY4YAtps8uue/Tb7LU7Wr9I22ofnMvfhukOPxaZabw3ejoCmKyD5i 89RfhpmWQ45ygHh/0swc1VrI90FLp7P+cRqPpl0SByeKoMEjzCtImzhHmsxLUfjEKa+M PA1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=8Aw534XqAzsrX/Soid9e+V8kuecBRcaWQFA8LhGazMY=; b=pnaZrCXIczqtQpaIzljz/Ksy1fZ6G8XzH8d8FIW/A24kroYSVWLiurg2H1Jo8EeDgF /MrccmsvI4sTAsD4RxTxdSEhaSGu3KP6sklrHfAkho9gcwgr1X67Po9kK2Iowc4PWC/e RsOIMnqECEdIRicJNrraZtzZw9UzsWJJs8cWuulMx5gSbw2ALqq1Nl7FB6pzevi5E2M3 NaeQEJD7XrjypsKiofBFGUACxbykgnCMM66KP8L2Og/wZQXHTYrzEJNHEB/xZl5k3StQ jSZhHFKNMDgHC1LcDATSrETLa+S07Dlfm2h10FtcrtwsvY0/IN9q9z/1irOaHq/Z80Fw VbTw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 204si580351pfu.273.2018.11.26.07.12.51; Mon, 26 Nov 2018 07:13:15 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727416AbeK0CE2 (ORCPT + 99 others); Mon, 26 Nov 2018 21:04:28 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:39662 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726644AbeK0CE2 (ORCPT ); Mon, 26 Nov 2018 21:04:28 -0500 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 A48D23515; Mon, 26 Nov 2018 07:10:04 -0800 (PST) Received: from en101 (en101.cambridge.arm.com [10.1.196.93]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4D5003F575; Mon, 26 Nov 2018 07:10:03 -0800 (PST) Date: Mon, 26 Nov 2018 15:09:56 +0000 From: Suzuki K Poulose To: Will Deacon Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, vladimir.murzin@arm.com, catalin.marinas@arm.com, mark.rutland@arm.com, Andre Przywara Subject: Re: [PATCH 1/7] arm64: capabilities: Merge entries for ARM64_WORKAROUND_CLEAN_CACHE Message-ID: <20181126150956.GA24096@en101> References: <1541418917-14219-1-git-send-email-suzuki.poulose@arm.com> <1541418917-14219-2-git-send-email-suzuki.poulose@arm.com> <20181126140603.GA29684@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181126140603.GA29684@arm.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 26, 2018 at 02:06:04PM +0000, Will Deacon wrote: > On Mon, Nov 05, 2018 at 11:55:11AM +0000, Suzuki K Poulose wrote: > > We have two entries for ARM64_WORKAROUND_CLEAN_CACHE capability : > > > > 1) ARM Errata 826319, 827319, 824069, 819472 on A53 r0p[012] > > 2) ARM Errata 819472 on A53 r0p[01] > > > > Both have the same work around. Merge these entries to avoid > > duplicate entries for a single capability. > > > > Cc: Will Deacon > > Cc: Andre Przywara > > Cc: Mark Rutland > > Signed-off-by: Suzuki K Poulose > > --- > > arch/arm64/kernel/cpu_errata.c | 19 +++++++------------ > > 1 file changed, 7 insertions(+), 12 deletions(-) > > > > diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c > > index a509e351..c825bc0 100644 > > --- a/arch/arm64/kernel/cpu_errata.c > > +++ b/arch/arm64/kernel/cpu_errata.c > > @@ -573,24 +573,19 @@ static const struct midr_range arm64_harden_el2_vectors[] = { > > const struct arm64_cpu_capabilities arm64_errata[] = { > > #if defined(CONFIG_ARM64_ERRATUM_826319) || \ > > defined(CONFIG_ARM64_ERRATUM_827319) || \ > > - defined(CONFIG_ARM64_ERRATUM_824069) > > + defined(CONFIG_ARM64_ERRATUM_824069) || \ > > + defined(CONFIG_ARM64_ERRATUM_819472) > > { > > - /* Cortex-A53 r0p[012] */ > > - .desc = "ARM errata 826319, 827319, 824069", > > + /* > > + * Cortex-A53 r0p[012]: ARM errata 826319, 827319, 824069 > > + * Cortex-A53 r0p[01] : ARM errata 819472 > > + */ > > + .desc = "ARM errata 826319, 827319, 824069, 819472", > > .capability = ARM64_WORKAROUND_CLEAN_CACHE, > > ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A53, 0, 0, 2), > > .cpu_enable = cpu_enable_cache_maint_trap, > > Isn't this a semantic change wrt the Kconfig options? After this change, > if I /only/ set CONFIG_ARM64_ERRATUM_819472=y, then I still get the > workaround applied for CPUs > r0[p01] which isn't what I asked for. You're right. I could change this to : diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 787d785..56a921f 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -313,6 +313,11 @@ menu "Kernel Features" menu "ARM errata workarounds via the alternatives framework" +config ARM64_WORKAROUND_CLEAN_CACHE + default y + depends on ARM64_ERRATUM_826319 || ARM64_ERRATUM_827319 || + ARM64_ERRATUM_824069 || ARM64_ERRATUM_819472 + config ARM64_ERRATUM_826319 bool "Cortex-A53: 826319: System might deadlock if a write cannot complete until read data is accepted" default y diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c index a509e351..80f2e66 100644 --- a/arch/arm64/kernel/cpu_errata.c +++ b/arch/arm64/kernel/cpu_errata.c @@ -570,24 +570,28 @@ static const struct midr_range arm64_harden_el2_vectors[] = { #endif -const struct arm64_cpu_capabilities arm64_errata[] = { +#ifdef CONFIG_ARM64_WORKAROUND_CLEAN_CACHE +static const struct midr_range workaround_clean_cache[] = { #if defined(CONFIG_ARM64_ERRATUM_826319) || \ defined(CONFIG_ARM64_ERRATUM_827319) || \ defined(CONFIG_ARM64_ERRATUM_824069) - { - /* Cortex-A53 r0p[012] */ - .desc = "ARM errata 826319, 827319, 824069", - .capability = ARM64_WORKAROUND_CLEAN_CACHE, - ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A53, 0, 0, 2), - .cpu_enable = cpu_enable_cache_maint_trap, - }, + /* Cortex-A53 r0p[012]: ARM errata 826319, 827319, 824069 */ + MIDR_REV_RANGE(MIDR_CORTEX_A53, 0, 0, 2), +#endif +#ifdef CONFIG_ARM64_ERRATUM_819472 + /* Cortex-A53 r0p[01] : ARM errata 819472 */ + MIDR_REV_RANGE(MIDR_CORTEX_A53, 0, 0, 1), +#endif + {}, +}; #endif -#ifdef CONFIG_ARM64_ERRATUM_819472 + +const struct arm64_cpu_capabilities arm64_errata[] = { +#ifdef CONFIG_ARM64_WORKAROUND_CLEAN_CACHE { - /* Cortex-A53 r0p[01] */ - .desc = "ARM errata 819472", + .desc = "ARM errata 826319, 827319, 824069, 819472", .capability = ARM64_WORKAROUND_CLEAN_CACHE, - ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A53, 0, 0, 1), + ERRATA_MIDR_REV_LIST(workaround_clean_cache), .cpu_enable = cpu_enable_cache_maint_trap, }, #endif --- Cheers Suzuki