From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0AA5CC433C1 for ; Mon, 29 Mar 2021 18:03:57 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3C55B6193A for ; Mon, 29 Mar 2021 18:03:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3C55B6193A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=76bq7h6IZ8Bfb3nHiwXv7K8diiLBnTvKuT7H7mFz+8A=; b=FZco4Ny0XxhqQFDDOz54CiAOL zcodQsN69VOtRTIO9sjUC4lcBdoVqkwtupQ71R2+Xj8JAQCtt+Zy0Jg5fee9asLPwrtFIyqSq+LDt Wx1jouYjG+hfxV6gsTMq7y1ASGZbUDufiWor5VuPjVHeQ5I+juG/InBX58TOf4r948KQZbFOU5Ax9 52n0RRD3EliRlqPxcgCWAWMGX7BQFEX6zKSMDLKtv51yyjmtkJTefRqIaRCV2Z5FJ/Wj45o1f9y79 /wwIh9YQwBDLRBhlvgBaJOOJXeVI+yqO/hZPpfH4QD9sjBX8byIFlU4RFXe8AJuiuuEF2OwmEtxQj 3Ep67lexA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lQwAG-000xsx-V8; Mon, 29 Mar 2021 17:59:10 +0000 Received: from mail.kernel.org ([198.145.29.99]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lQp20-000Zrv-Gq for linux-arm-kernel@lists.infradead.org; Mon, 29 Mar 2021 10:22:02 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id E3A0760C3E; Mon, 29 Mar 2021 10:21:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1617013315; bh=7ktf3PcrH+pVpXBVBbNCT2BG7QEyqVRyzdnxmUkubTo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=t8mB0inRU/AxJSUO5xMLDvSzAjsqzRsLOh5tjEPTZUuuYe7X9IX5OzKyxc+SNXe0a Rdao/7UzUvkvnpTV8QHb0uUSndLIkeHVxAOnrvv8afW5u5mu5ytz+WdWdpfQKxIiGT T6uinIt51CCKlPpYHiUMgprdA1iVWAUBZ4LpKM5MYz2b/Xp8SQzxaC06UtOO+RT+KF 4+yPZPQD+nbtREX/Of6m4pFT4k//ZMQzgl5v8XgaLP5DV8GwTmuc0Px9ledwIglEig zW2lD5yNYGxiY82FVllNf8EPf6XqH6UO2eAXKq+DrdmGuHKgO/anYWjulsDuj43nMd WAbKn4Zfl9RXw== Date: Mon, 29 Mar 2021 11:21:50 +0100 From: Will Deacon To: Marc Zyngier Cc: linux-arm-kernel@lists.infradead.org, Hector Martin , Arnd Bergmann , Mark Rutland , Catalin Marinas , kernel-team@android.com Subject: Re: [PATCH 1/2] arm64: cpufeature: Allow early filtering of feature override Message-ID: <20210329102150.GC3207@willie-the-truck> References: <20210325124721.941182-1-maz@kernel.org> <20210325124721.941182-2-maz@kernel.org> <20210325192759.GA16123@willie-the-truck> <87tuoyfajs.wl-maz@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <87tuoyfajs.wl-maz@kernel.org> User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210329_112200_749117_E7F67487 X-CRM114-Status: GOOD ( 23.31 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Mar 26, 2021 at 10:56:23AM +0000, Marc Zyngier wrote: > On Thu, 25 Mar 2021 19:27:59 +0000, > Will Deacon wrote: > > > > On Thu, Mar 25, 2021 at 12:47:20PM +0000, Marc Zyngier wrote: > > > Some CPUs are broken enough that some overrides need to be rejected > > > at the earliest opportunity. In some cases, that's right at cpu > > > feature override time. > > > > > > Provide the necessary infrastructure to filter out overrides, > > > and to report such filtered out overrides to the core cpufeature code. > > > > > > Signed-off-by: Marc Zyngier > > > --- > > > arch/arm64/kernel/cpufeature.c | 6 ++++++ > > > arch/arm64/kernel/idreg-override.c | 13 +++++++++++++ > > > 2 files changed, 19 insertions(+) > > > > > > diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c > > > index 066030717a4c..6de15deaa912 100644 > > > --- a/arch/arm64/kernel/cpufeature.c > > > +++ b/arch/arm64/kernel/cpufeature.c > > > @@ -809,6 +809,12 @@ static void __init init_cpu_ftr_reg(u32 sys_reg, u64 new) > > > reg->name, > > > ftrp->shift + ftrp->width - 1, > > > ftrp->shift, str, tmp); > > > + } else if ((ftr_mask & reg->override->val) == ftr_mask) { > > > > This seems to rely on 'val == mask' being invalid, but I'm not sure why > > that's generally true. > > This is really 'ovr->val == mask && ovr->mask != mask', thanks to > being on the 'else' branch. The encoding rules of val/mask are, for a > given field: > > - no override set: mask = 0, val = 0 > - valid override set: mask = 0xf, val = (override value) > - invalid override set: mask = 0, val = 0xf > > I don't see where the ambiguity could be (though the above could > figure in a comment to make things clearer). Thanks, this makes sense to me now; I'd missed the other part of the conditional. So yeah, with that comment added: Acked-by: Will Deacon Will _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel