From patchwork Sat Nov 21 09:59:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Collingbourne X-Patchwork-Id: 11923703 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,DATE_IN_PAST_12_24, DKIMWL_WL_HIGH,DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 B58D3C388F9 for ; Sun, 22 Nov 2020 00:03:23 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 53BCD20691 for ; Sun, 22 Nov 2020 00:03:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="rqJEZ8wd"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=google.com header.i=@google.com header.b="s3QDryrb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 53BCD20691 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com 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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:From:Subject:Mime-Version:Message-Id:Date: 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=6QEWhJ/8exGNE++7XgQLxHf3fNkMl0uaEc6IbwARhrM=; b=rqJEZ8wdC610/z+yOcfinq8iuz rrG1UEBppzeWMcsSJvMSv0o+XI6gJfwWcsam4G/sQ25wq4FqpTJaJFcpKcByEc5RWayNmTA6NLmbN Lvjd3ijHMw4jAA6eGtrqkx4L1BYHMdT93q6ooht3Ri1Xke79bRBo1wDrk4RD9DTReCy2olLyJgu5B zZ7gZdRmdlZGoKnBAgrzqjyRC1iFaanbAsbqdVQ4d+M++fLB2tu+NbBqHyMo3U612DAS3bocWWGz0 MKrMuOtmOA//lZ44kxYCyygayuUnwlkXqS/lkC5XLhEDjycpxbhpdOB8PqCC7RhuCGVn/xGrB9T+1 OIHM95/A==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kgcpP-00014f-9i; Sun, 22 Nov 2020 00:02:03 +0000 Received: from mail-ot1-x349.google.com ([2607:f8b0:4864:20::349]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kgcpM-00014H-St for linux-arm-kernel@lists.infradead.org; Sun, 22 Nov 2020 00:02:01 +0000 Received: by mail-ot1-x349.google.com with SMTP id i11so5829162otr.8 for ; Sat, 21 Nov 2020 16:01:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:message-id:mime-version:subject:from:to:cc; bh=WsUEi0z7Dz1bXAOmQFYUbblVTp6z5WKIjT4H2OhRZ68=; b=s3QDryrbltRJk8zKcIElUF32zdgNc8BkPT6ab64oRstGNPHQ9R/E7+KGLUQKVHM95/ tWE8mquVCh87Nvk5zBgvLs9cJx15NLV7ORuiIgrkwYoe96Xuoz3MZjHFiGJ/fZ5sKNWk 0doNapBW8uAZoM2pYgyZOqmQGmpbG1ADbuz9Mlkz7x8lZDzCIGHRYpwkYL6Qt8DTAvEC 7mEl6uJxpSu+If1fgSLJlA/CTYTB+ioiZ+CJ/Dc5nGG8/aSozMx1sPdkoF+QK9158srZ dfDuzdqlPkvicRzBsWMtTJ7g80uOOEeDjsHVrz5TusTR6t8Tk6WGS7lGMLrcx+3yIB7o PUkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:message-id:mime-version:subject:from :to:cc; bh=WsUEi0z7Dz1bXAOmQFYUbblVTp6z5WKIjT4H2OhRZ68=; b=IBtpCd5orQSj3iIFAfa966ADfmtBTPpPDOKa7hpwOWJsDIHCJOl0aJh+6k+rdvhHQ7 Cvc7cpI2U+m7uvB5tKBh2z3canXUSdEtbIGmKaMq2fbhsuMgFFNtJznbLQDP3XQywA9y L5vhrcjNdZia2te0z8lPufJM/klMDXR2HgAZJNLBjX6ckrELnXHg2yMhdlJlQpMHxf7k wYfnNEysaUoD1L381r9s32sCYpojmjWhLEU+dy9HlgdIXAK20JRdTKee+2kCsTtcMjl5 2ipit3ViUTxP26kOhZV71kzzT8TDbLI2mig3wd627Ks3ekKWWTiLoki+MBOVn+QQCJ/7 ofpw== X-Gm-Message-State: AOAM530OxmC7ZoFkxfsIkPGiRzm7t/B68px2/bnllGOapw3nD7ZKzpev 1sbmwsmfT4BVw7Z0CwB/ZzEKjiY= X-Google-Smtp-Source: ABdhPJwpMi8YpdlPVDbGMRvK6mmXDOOcxdGseF1dACwdw8lxl7n8LLdTIpImechooRrzXDxVZYzz0kY= X-Received: from pcc-desktop.svl.corp.google.com ([2620:15c:2ce:0:7220:84ff:fe09:385a]) (user=pcc job=sendgmr) by 2002:a25:cb55:: with SMTP id b82mr36207818ybg.334.1605952754258; Sat, 21 Nov 2020 01:59:14 -0800 (PST) Date: Sat, 21 Nov 2020 01:59:02 -0800 Message-Id: <20f64e26fc8a1309caa446fffcb1b4e2fe9e229f.1605952129.git.pcc@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog Subject: [PATCH 1/2] kasan: arm64: set TCR_EL1.TBID1 when enabled From: Peter Collingbourne To: Catalin Marinas , Evgenii Stepanov , Kostya Serebryany , Vincenzo Frascino , Dave Martin , Will Deacon X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201121_190200_976804_5A004C66 X-CRM114-Status: GOOD ( 12.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrey Konovalov , Peter Collingbourne , Linux ARM , linux-api@vger.kernel.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On hardware supporting pointer authentication, we previously ended up enabling TBI on instruction accesses when tag-based ASAN was enabled, but this was costing us 8 bits of PAC entropy, which was unnecessary since tag-based ASAN does not require TBI on instruction accesses. Get them back by setting TCR_EL1.TBID1. Signed-off-by: Peter Collingbourne Link: https://linux-review.googlesource.com/id/I3dded7824be2e70ea64df0aabab9598d5aebfcc4 Reviewed-by: Andrey Konovalov --- arch/arm64/include/asm/pgtable-hwdef.h | 1 + arch/arm64/mm/proc.S | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/include/asm/pgtable-hwdef.h b/arch/arm64/include/asm/pgtable-hwdef.h index 01a96d07ae74..42442a0ae2ab 100644 --- a/arch/arm64/include/asm/pgtable-hwdef.h +++ b/arch/arm64/include/asm/pgtable-hwdef.h @@ -260,6 +260,7 @@ #define TCR_TBI1 (UL(1) << 38) #define TCR_HA (UL(1) << 39) #define TCR_HD (UL(1) << 40) +#define TCR_TBID1 (UL(1) << 52) #define TCR_NFD0 (UL(1) << 53) #define TCR_NFD1 (UL(1) << 54) #define TCR_E0PD0 (UL(1) << 55) diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S index 23c326a06b2d..97a97a61a8dc 100644 --- a/arch/arm64/mm/proc.S +++ b/arch/arm64/mm/proc.S @@ -40,7 +40,7 @@ #define TCR_CACHE_FLAGS TCR_IRGN_WBWA | TCR_ORGN_WBWA #ifdef CONFIG_KASAN_SW_TAGS -#define TCR_KASAN_FLAGS TCR_TBI1 +#define TCR_KASAN_FLAGS TCR_TBI1 | TCR_TBID1 #else #define TCR_KASAN_FLAGS 0 #endif