Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp4072961pxk; Tue, 8 Sep 2020 09:59:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzNgCSNx/qT6t7RPFC0XzIkXOl6GDTSxeDDPAiNbKC4iTFJhPNJCv8V3YwkQ3IlIFiAk+ow X-Received: by 2002:a05:6402:3075:: with SMTP id bs21mr28578080edb.236.1599584384544; Tue, 08 Sep 2020 09:59:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599584384; cv=none; d=google.com; s=arc-20160816; b=xjewmJkEUOSb7cbhMyHitNtgZRPw+dM2dE6HOW56aUmqSIZW3SdYSrsNGs3Vb0uUg7 tu/y24sAzcZX9/IEuk3JnlrLTRE/LulqCngmsXzU5RCyG6ZCZyyc7ICpXMKaL7cj1+E1 vKYU63b2CfaF/pkiPW0uSpXS34gws0Ow8ZvtZJi9WfEcMbGei+YAVGFFaHZX9dbCUjzE whGiHK/kj9IrR67sZA3rRuKVDlRtr0iqlvM9fzDfdgTA+oJJW4U0/44hRenIN1bxzssV 9RQJrnjZF19dTk3B83OuVksUoMunpp1wC0Dc8ETWqyF9CyeAp3D/bOyD7+gNJbK7sPtR l2MQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=u6IZBEYdJUicGrUE54qThuMWVgXq8hL/oKiMR3tNmWw=; b=SmBG9we8N/ocToyGDMlVfMwwzX4veONemucV4fVlyoRCnrLTW0br5jqD84vsEB0Kpq oCA15RmBuoYAmqFOfxLI5tgNweOBO+P6fQVfTrBCYL2l40EBA6ZK3h1mGHU7DJXljy6T MOnpydKeCR6TIhPbw0y0HThNj7hwIXnzjtpRiM9t88jUZrO6J0eK1rEAPkQV8txWQkR2 Q1jaZnNSWLGwYd1F1UPV4vypxCcIrDUmJouv3pK0fFvD3tOHq4m4dJAHhJyaN2Dd5Qll I4yqam9xojd/eFfJX2G4WBHuw6Yp7Xe7QEtGtpH5fikZ5wiYt23Hzmt3RMS2s/3rgKtl xnqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=cv+LslJ4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l14si973245eje.378.2020.09.08.09.59.22; Tue, 08 Sep 2020 09:59:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=@google.com header.s=20161025 header.b=cv+LslJ4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732021AbgIHQ4X (ORCPT + 99 others); Tue, 8 Sep 2020 12:56:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731835AbgIHQWu (ORCPT ); Tue, 8 Sep 2020 12:22:50 -0400 Received: from mail-pj1-x1043.google.com (mail-pj1-x1043.google.com [IPv6:2607:f8b0:4864:20::1043]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D941BC08EAD4 for ; Tue, 8 Sep 2020 07:39:46 -0700 (PDT) Received: by mail-pj1-x1043.google.com with SMTP id kk9so5763669pjb.2 for ; Tue, 08 Sep 2020 07:39:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=u6IZBEYdJUicGrUE54qThuMWVgXq8hL/oKiMR3tNmWw=; b=cv+LslJ4V6jfBHxvBBCk7QV/70j9a6RdII0YFlSLFtzmyWQa8pV+VXOTMXbYoLw3gJ 7DIJkOIRBeK9eyC075KhNoNS5tWP+NhRGWamXmd9VcbEgexsPRuHqUxTUvwMVVwGIrQF jwja0RSSmK4sJz0xpuPKd0pIbeb4yMAcw3vrt3c8itGysNVbPAyttMGQV8BzfMCWY7yw 10eknqk7kUIcYYTpqo6phYE6GX1SOCg8dLd0QXO77rBoW3FuzgGfCkkGE3/GOXACuBrL ygzDP55kRb9Cjp7f8QCSbAxJ5uTK/SVSXSDPlNwqOZyT/AGeeGHpjt+Z2NExWvZqpMZX PPYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=u6IZBEYdJUicGrUE54qThuMWVgXq8hL/oKiMR3tNmWw=; b=Tyk8+9lJb/4BY03UaA2p2MImv88LanBHkjCBk4SczXp0bSrkupmzWzPfkQDdVOinfo jLWqH4SCt3coM5RjjMpbSa8v0vl9hQN4iXft+zArwo8bI33Lbwj23cu4zXsdSGnqQai7 BmJs4ToB7EI6sJ46o0XXtdU/KXnfjf3F8X9+FF56suKugq1glSC2tBgNUYgvplbT07Fi 87+9DBHA/kkrbSfUb9CTE1PvBmoeIrNH5+J8bYD2xm3FcGahP9dBV5XRC2URafbS/Tyu 4cwUMKt5Vg6G91Bs9+NagcgzwffikCettVa0F+5RCxjj4+tLgHoTeHWcDznb37IX7x0i bAKg== X-Gm-Message-State: AOAM5305HEn6gLkMon+tpxvLzRcwVTMevbJV4RC1L7Ke96prTJ+jr/Ig AayN5E+BCYeOejUGKGrqnl7CbZTq/x7ZuhVZPqcLlw== X-Received: by 2002:a17:90b:140c:: with SMTP id jo12mr4229667pjb.41.1599575986171; Tue, 08 Sep 2020 07:39:46 -0700 (PDT) MIME-Version: 1.0 References: <6a83a47d9954935d37a654978e96c951cc56a2f6.1597425745.git.andreyknvl@google.com> In-Reply-To: <6a83a47d9954935d37a654978e96c951cc56a2f6.1597425745.git.andreyknvl@google.com> From: Andrey Konovalov Date: Tue, 8 Sep 2020 16:39:35 +0200 Message-ID: Subject: Re: [PATCH 22/35] arm64: mte: Enable in-kernel MTE To: Vincenzo Frascino , Catalin Marinas Cc: Andrey Ryabinin , Alexander Potapenko , Marco Elver , Evgenii Stepanov , Elena Petrova , Branislav Rankov , Kevin Brodsky , Will Deacon , Andrew Morton , Linux ARM , Linux Memory Management List , LKML , Dmitry Vyukov , kasan-dev Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 14, 2020 at 7:28 PM Andrey Konovalov wrote: > > From: Vincenzo Frascino > > The Tag Checking operation causes a synchronous data abort as > a consequence of a tag check fault when MTE is configured in > synchronous mode. > > Enable MTE in Synchronous mode in EL1 to provide a more immediate > way of tag check failure detection in the kernel. > > As part of this change enable match-all tag for EL1 to allow the > kernel to access user pages without faulting. This is required because > the kernel does not have knowledge of the tags set by the user in a > page. > > Note: For MTE, the TCF bit field in SCTLR_EL1 affects only EL1 in a > similar way as TCF0 affects EL0. > > Signed-off-by: Vincenzo Frascino > --- > arch/arm64/kernel/cpufeature.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c > index 4d3abb51f7d4..4d94af19d8f6 100644 > --- a/arch/arm64/kernel/cpufeature.c > +++ b/arch/arm64/kernel/cpufeature.c > @@ -1670,6 +1670,9 @@ static void cpu_enable_mte(struct arm64_cpu_capabilities const *cap) > write_sysreg_s(0, SYS_TFSR_EL1); > write_sysreg_s(0, SYS_TFSRE0_EL1); > > + /* Enable Match-All at EL1 */ > + sysreg_clear_set(tcr_el1, 0, SYS_TCR_EL1_TCMA1); > + > /* > * CnP must be enabled only after the MAIR_EL1 register has been set > * up. Inconsistent MAIR_EL1 between CPUs sharing the same TLB may > @@ -1687,6 +1690,9 @@ static void cpu_enable_mte(struct arm64_cpu_capabilities const *cap) > mair &= ~MAIR_ATTRIDX(MAIR_ATTR_MASK, MT_NORMAL_TAGGED); > mair |= MAIR_ATTRIDX(MAIR_ATTR_NORMAL_TAGGED, MT_NORMAL_TAGGED); > write_sysreg_s(mair, SYS_MAIR_EL1); > + > + /* Enable MTE Sync Mode for EL1 */ > + sysreg_clear_set(sctlr_el1, SCTLR_ELx_TCF_MASK, SCTLR_ELx_TCF_SYNC); > isb(); > > local_flush_tlb_all(); > -- > 2.28.0.220.ged08abb693-goog > Should we change this commit to enable in-kernel MTE only if KASAN_HW_TAGS is enabled?