From patchwork Fri Oct 18 16:10:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sami Tolvanen X-Patchwork-Id: 176893 Delivered-To: patch@linaro.org Received: by 2002:a92:7e96:0:0:0:0:0 with SMTP id q22csp1065484ill; Fri, 18 Oct 2019 09:10:54 -0700 (PDT) X-Google-Smtp-Source: APXvYqw7Hkkjc4nO/H3yzdtGyuvtIXR3ECZsZwfNjGCaYt4nt1TGMxDbkTVQyt38DPAhS/mAsdfS X-Received: by 2002:a05:6402:1252:: with SMTP id l18mr10477679edw.64.1571415054809; Fri, 18 Oct 2019 09:10:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571415054; cv=none; d=google.com; s=arc-20160816; b=j5hLi6uD+NKX/frjI0ttCE9KbgHhvvuuzHNqaJqyZgnmxdZOjBdDBW9u+D0wC4Jl9j s26HIIYf1s5Ih9fMZXXtYSK3lxa/79sMSxm0lBWz4CoYdkvk6AnQPjSqhBJxCJKj6owH E0Ywi5YkgcNIUwrcpC/lzhG0FoS+nXbklXM2Darrqb3OR61ZEARZ4m6Ec7rU0Bz9l8T3 g6x9ttTIuAzOG3hSC7uyABgvxp92P890hzDzA5cq5aVeSve1do58CCyuaqrDRbS5dz87 zd7qn1Qety67dK+6+wEQBN87e5aOX/fHjNxelM8iSUS7O5SVVuzUf+AQIZYmonW/kgBY VjQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=jUS0dhIzgmFNCiOAuEUXvcuYNkuGL56ryAS+MUv7C/I=; b=UWFd2KM9cy3xRrekTUrVO/snh3vqRJ9eqoAYnMeA6CuxZ8v9W6k3KGHvvxzW6YnR/i Ey+e4cPH8TTwVem8s6QZtgp9TDLHWGp5LS0kAXLaw9EZMaCi5/mD0f/WOnhazW9AcVUF lL3JMmbutuDv5gGyutO44oSq+uw+dB55Ksne5Jt5iB4ublt7pKQZ5bgMFJy5lOUoR0LD S5DmAnDCO9tKpxsyyHoDJYQbFmziMYPCE1m/zHurWs5jkDVoAuDo3sqlIrAUefqje218 O1emGoteSRrInqbubxJ387NGwYU3kpfKvHVhgJpg7Ov/j/61iucQbGDI6E2eFtOxBlCY jFMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="i/jDfxdk"; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p10si3583415ejz.391.2019.10.18.09.10.54; Fri, 18 Oct 2019 09:10:54 -0700 (PDT) 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; dkim=pass header.i=@google.com header.s=20161025 header.b="i/jDfxdk"; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442925AbfJRQKx (ORCPT + 26 others); Fri, 18 Oct 2019 12:10:53 -0400 Received: from mail-pf1-f202.google.com ([209.85.210.202]:43829 "EHLO mail-pf1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2442647AbfJRQKv (ORCPT ); Fri, 18 Oct 2019 12:10:51 -0400 Received: by mail-pf1-f202.google.com with SMTP id i187so4977090pfc.10 for ; Fri, 18 Oct 2019 09:10:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=jUS0dhIzgmFNCiOAuEUXvcuYNkuGL56ryAS+MUv7C/I=; b=i/jDfxdkcHMKcb5mbJursCxkiE0tLbcAT50ryu4atkNnzE9tZW2TQb4DunSXt4JOkt hyqhR6jkusYNpX0FQ9xmE9MPM+OkoO9XULEt54Q1eChfRkMXo6zH0LLx5BfDV9XxTViq ZY4f/W9+YSMQLmVbr5Hvv7U5xrLsx6ePGTXBQJ2GfNYSLJa/kqRf7pp4MN5xmr1Pm9vV U0cyLViFkAWt3zk7EDLd8J6L/oTDFeTktzFlIC0dgmBDCYk0vOIQhRFpRS9l6HZ8lGvH d40Qs4Z3TDODrADDi1vpWtmXBnOPWrst+YFdZPhbhVcTVQ3PCuWW86qVwWdHqVcy9DgV E2Sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=jUS0dhIzgmFNCiOAuEUXvcuYNkuGL56ryAS+MUv7C/I=; b=JXuBKFif+pWIf0lK0lMRWwIg+1gvrbYTy75XnOrs4D+mYaQ2kbGNNKlzAzlUTQIYn4 t3piV5I4baXMHNBMeVGhgDVeY/R1RCdfx5LgVAX73LGZnjSRZHjWr8iE4h/PLkS0LzU1 xyoDbssfCUmKvC4BPMywP1pzh8nA376Go5fNv/taryG9Va1TkyAUQdhpBsIkRIZmjgGF ygcUoB/rbFBz7wbjlCnfU8COQB//ve1wbnuYmUfNcerslNv4KWEcy5S5hQ8Qpowoaijp uaWzvDAIt4mYc/EV3BOD9mVtNACdKWE9NjqhjRn9y5yUJ2xjUNrOm+lgvCgTrtgKdOl+ 5I8A== X-Gm-Message-State: APjAAAV8y12pmPNKuMRBgUiD1t0wngVABdjbkEDVcQeRgF68bQw3NiE9 qBUwXoZFHoXSjGAQrPQs2WFsK+bXC8I1sSgCLsA= X-Received: by 2002:a63:3201:: with SMTP id y1mr10741272pgy.174.1571415050913; Fri, 18 Oct 2019 09:10:50 -0700 (PDT) Date: Fri, 18 Oct 2019 09:10:17 -0700 In-Reply-To: <20191018161033.261971-1-samitolvanen@google.com> Message-Id: <20191018161033.261971-3-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> X-Mailer: git-send-email 2.23.0.866.gb869b98d4c-goog Subject: [PATCH 02/18] arm64/lib: copy_page: avoid x18 register in assembler code From: Sami Tolvanen To: Will Deacon , Catalin Marinas , Steven Rostedt , Ard Biesheuvel Cc: Dave Martin , Kees Cook , Laura Abbott , Mark Rutland , Nick Desaulniers , clang-built-linux@googlegroups.com, kernel-hardening@lists.openwall.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Sami Tolvanen Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ard Biesheuvel Register x18 will no longer be used as a caller save register in the future, so stop using it in the copy_page() code. Link: https://patchwork.kernel.org/patch/9836869/ Signed-off-by: Ard Biesheuvel Signed-off-by: Sami Tolvanen --- arch/arm64/lib/copy_page.S | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) -- 2.23.0.866.gb869b98d4c-goog diff --git a/arch/arm64/lib/copy_page.S b/arch/arm64/lib/copy_page.S index bbb8562396af..8b562264c165 100644 --- a/arch/arm64/lib/copy_page.S +++ b/arch/arm64/lib/copy_page.S @@ -34,45 +34,45 @@ alternative_else_nop_endif ldp x14, x15, [x1, #96] ldp x16, x17, [x1, #112] - mov x18, #(PAGE_SIZE - 128) + add x0, x0, #256 add x1, x1, #128 1: - subs x18, x18, #128 + tst x0, #(PAGE_SIZE - 1) alternative_if ARM64_HAS_NO_HW_PREFETCH prfm pldl1strm, [x1, #384] alternative_else_nop_endif - stnp x2, x3, [x0] + stnp x2, x3, [x0, #-256] ldp x2, x3, [x1] - stnp x4, x5, [x0, #16] + stnp x4, x5, [x0, #-240] ldp x4, x5, [x1, #16] - stnp x6, x7, [x0, #32] + stnp x6, x7, [x0, #-224] ldp x6, x7, [x1, #32] - stnp x8, x9, [x0, #48] + stnp x8, x9, [x0, #-208] ldp x8, x9, [x1, #48] - stnp x10, x11, [x0, #64] + stnp x10, x11, [x0, #-192] ldp x10, x11, [x1, #64] - stnp x12, x13, [x0, #80] + stnp x12, x13, [x0, #-176] ldp x12, x13, [x1, #80] - stnp x14, x15, [x0, #96] + stnp x14, x15, [x0, #-160] ldp x14, x15, [x1, #96] - stnp x16, x17, [x0, #112] + stnp x16, x17, [x0, #-144] ldp x16, x17, [x1, #112] add x0, x0, #128 add x1, x1, #128 - b.gt 1b + b.ne 1b - stnp x2, x3, [x0] - stnp x4, x5, [x0, #16] - stnp x6, x7, [x0, #32] - stnp x8, x9, [x0, #48] - stnp x10, x11, [x0, #64] - stnp x12, x13, [x0, #80] - stnp x14, x15, [x0, #96] - stnp x16, x17, [x0, #112] + stnp x2, x3, [x0, #-256] + stnp x4, x5, [x0, #-240] + stnp x6, x7, [x0, #-224] + stnp x8, x9, [x0, #-208] + stnp x10, x11, [x0, #-192] + stnp x12, x13, [x0, #-176] + stnp x14, x15, [x0, #-160] + stnp x16, x17, [x0, #-144] ret ENDPROC(copy_page) From patchwork Fri Oct 18 16:10:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sami Tolvanen X-Patchwork-Id: 176894 Delivered-To: patch@linaro.org Received: by 2002:a92:7e96:0:0:0:0:0 with SMTP id q22csp1065598ill; Fri, 18 Oct 2019 09:10:59 -0700 (PDT) X-Google-Smtp-Source: APXvYqwE8a1/XVMP+5XLlv8JdzKblqRneSaZ298+UK6dSxR1jtPvi/U25aVdne2P5IttFHQSn3MG X-Received: by 2002:a50:fc82:: with SMTP id f2mr10408123edq.262.1571415059750; Fri, 18 Oct 2019 09:10:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571415059; cv=none; d=google.com; s=arc-20160816; b=qFTrp0fU0rKpcdvnzX2z2bgp5kD6Gi52AvNmMx8qxauBNReqO5EztQurOsClS5OBUk /DgQhZlJFPlGiGmKK1wuyjaMdLo6kMizyWZ0Oxygdj1YUbCvj4k5bN6Ql28Y2EXXe+yW M9MTIVBB4yH1T0fhD7kNnnX/dsAKuMxynAwMbYlSHlWbDA/6cFLYaLzZ5OFPcgy81FLT wuWWu6U4dtNyhhV5zcgHYRaVzmb1Lovd4yKMeT4VBLxaiLQLn7ynqh2vZuCuhrUNcJtr u8dLR0RFjLtK1Jzswx4Bdoehz0Z4N7AHBzpOAMWAWGAiKZOxk3L28SaDoGA8/wbm8Z2E 7avg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=72rGRuWFiviz942NA6zVkn9gcWlAdBMK2y71uV80e5M=; b=MAQ5D1dgoAfQBJhVJ552oAjkJdL0cdi8NkqGOLGwmilyQD85mS6otwQXiiqauSMF4Y lQs8O+o0ah1nCx00BfddcCkybQxfsZmPnHzAy2bt5fTya6vle6snmhJ2pIsE0nRbbLXx ZpFsnNO1Wt2d8ufco/d9Zhm8qQxzqDM4FIbTinh7d2mP8J/BgssE6OT6kpTVe03dYv+L 4hDThXhuom0wHDa7ni5xlW5hgX7qZrsjM39jPg+NPr23THeTzFVKbF4vyLmgYqzuCYJk lYgdpcnWxXAc6vfwXiQW5hJzIbs/s4Rq4BhPZTR7pp/1OMsDxcg9L5ADHPpERsqJs5k9 rpig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=ZvzQdFSz; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p10si3583415ejz.391.2019.10.18.09.10.59; Fri, 18 Oct 2019 09:10:59 -0700 (PDT) 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; dkim=pass header.i=@google.com header.s=20161025 header.b=ZvzQdFSz; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442935AbfJRQK6 (ORCPT + 26 others); Fri, 18 Oct 2019 12:10:58 -0400 Received: from mail-yw1-f73.google.com ([209.85.161.73]:42610 "EHLO mail-yw1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2442650AbfJRQK4 (ORCPT ); Fri, 18 Oct 2019 12:10:56 -0400 Received: by mail-yw1-f73.google.com with SMTP id o14so4756872ywa.9 for ; Fri, 18 Oct 2019 09:10:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=72rGRuWFiviz942NA6zVkn9gcWlAdBMK2y71uV80e5M=; b=ZvzQdFSzTLbEjP4zxdusVf3ReL3ljnpZzJfPdrbpnE9rMeefuhQHID/ee1FAoqvYLH O+/PdDLy+eoWqhA9UIEIUFRCMC5xqhNowPZWx2ww/HoS+63BhQ5I1HOf+y5t9GV4AlzB 4wvvMPqaOkuUSsDFHTVS6xJHhNUp3s1c9Y1ghonvzQD2ZPiXv5LmNp53Biqgoh9GKiCJ afEukw6/WMLv2boh6kNWUds4TgOnVVcCplvVwI02NOYpPnoOVZxpUv2JWmCC5FcJjdP9 qyuCgJgGG2jATFBKXIAZK/fXaf2KYXXK+X2rgvP6lspQZZSv0gH/6LOEhAEKe42LtQC+ cKeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=72rGRuWFiviz942NA6zVkn9gcWlAdBMK2y71uV80e5M=; b=KM9cLDQVbkXw8R8pQK3de3EhZz+xtiCoX4JVxt8+DtmDiPqQqYjHn+dCOgOEV90ld4 +3q34txxsMtLjaweWEF4UkcmsRWxBpjGh5C1YFBt3qXyQRJd4As70+Ltbv3GQeMm1hAY d5BIZd/6YVCoKg0tLiQSvKoCKWyadw9fpjjVbRNvKWiG30AlNaZYHSz2tscqWviyxZCE VXInN0C1viGICmXxbj0xzrvIae7CsofC4AVJcX6QhqCpPuhDrPLV4j9FKWSvRMUIpKSZ B54KBby6v3SMApRmZVf8njFRSkfblBXIme0Wtx5xEjlc2hUYvcUwdGT5xIJu1XzB9j0I SS9A== X-Gm-Message-State: APjAAAXQQh1diR16xUFviAghnSLROnVPL5CCiyeCXdAM3tllnSP2ZFBx fxsCLfjf/MOfxRp56aMmwOdCE4GAgXEt1RED3d8= X-Received: by 2002:a0d:d804:: with SMTP id a4mr7899178ywe.454.1571415054615; Fri, 18 Oct 2019 09:10:54 -0700 (PDT) Date: Fri, 18 Oct 2019 09:10:18 -0700 In-Reply-To: <20191018161033.261971-1-samitolvanen@google.com> Message-Id: <20191018161033.261971-4-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> X-Mailer: git-send-email 2.23.0.866.gb869b98d4c-goog Subject: [PATCH 03/18] arm64: kvm: stop treating register x18 as caller save From: Sami Tolvanen To: Will Deacon , Catalin Marinas , Steven Rostedt , Ard Biesheuvel Cc: Dave Martin , Kees Cook , Laura Abbott , Mark Rutland , Nick Desaulniers , clang-built-linux@googlegroups.com, kernel-hardening@lists.openwall.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Sami Tolvanen Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ard Biesheuvel In preparation of using x18 as a task struct pointer register when running in the kernel, stop treating it as caller save in the KVM guest entry/exit code. Currently, the code assumes there is no need to preserve it for the host, given that it would have been assumed clobbered anyway by the function call to __guest_enter(). Instead, preserve its value and restore it upon return. Link: https://patchwork.kernel.org/patch/9836891/ Signed-off-by: Ard Biesheuvel Signed-off-by: Sami Tolvanen --- arch/arm64/kvm/hyp/entry.S | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) -- 2.23.0.866.gb869b98d4c-goog diff --git a/arch/arm64/kvm/hyp/entry.S b/arch/arm64/kvm/hyp/entry.S index e5cc8d66bf53..20bd9a20ea27 100644 --- a/arch/arm64/kvm/hyp/entry.S +++ b/arch/arm64/kvm/hyp/entry.S @@ -23,6 +23,7 @@ .pushsection .hyp.text, "ax" .macro save_callee_saved_regs ctxt + str x18, [\ctxt, #CPU_XREG_OFFSET(18)] stp x19, x20, [\ctxt, #CPU_XREG_OFFSET(19)] stp x21, x22, [\ctxt, #CPU_XREG_OFFSET(21)] stp x23, x24, [\ctxt, #CPU_XREG_OFFSET(23)] @@ -38,6 +39,7 @@ ldp x25, x26, [\ctxt, #CPU_XREG_OFFSET(25)] ldp x27, x28, [\ctxt, #CPU_XREG_OFFSET(27)] ldp x29, lr, [\ctxt, #CPU_XREG_OFFSET(29)] + ldr x18, [\ctxt, #CPU_XREG_OFFSET(18)] .endm /* @@ -87,12 +89,9 @@ alternative_else_nop_endif ldp x14, x15, [x18, #CPU_XREG_OFFSET(14)] ldp x16, x17, [x18, #CPU_XREG_OFFSET(16)] - // Restore guest regs x19-x29, lr + // Restore guest regs x18-x29, lr restore_callee_saved_regs x18 - // Restore guest reg x18 - ldr x18, [x18, #CPU_XREG_OFFSET(18)] - // Do not touch any register after this! eret sb @@ -114,7 +113,7 @@ ENTRY(__guest_exit) // Retrieve the guest regs x0-x1 from the stack ldp x2, x3, [sp], #16 // x0, x1 - // Store the guest regs x0-x1 and x4-x18 + // Store the guest regs x0-x1 and x4-x17 stp x2, x3, [x1, #CPU_XREG_OFFSET(0)] stp x4, x5, [x1, #CPU_XREG_OFFSET(4)] stp x6, x7, [x1, #CPU_XREG_OFFSET(6)] @@ -123,9 +122,8 @@ ENTRY(__guest_exit) stp x12, x13, [x1, #CPU_XREG_OFFSET(12)] stp x14, x15, [x1, #CPU_XREG_OFFSET(14)] stp x16, x17, [x1, #CPU_XREG_OFFSET(16)] - str x18, [x1, #CPU_XREG_OFFSET(18)] - // Store the guest regs x19-x29, lr + // Store the guest regs x18-x29, lr save_callee_saved_regs x1 get_host_ctxt x2, x3 From patchwork Fri Oct 18 16:10:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sami Tolvanen X-Patchwork-Id: 176895 Delivered-To: patch@linaro.org Received: by 2002:a92:7e96:0:0:0:0:0 with SMTP id q22csp1065686ill; Fri, 18 Oct 2019 09:11:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqx4QiJCKWLnHl9LFQw/ZzUg3umlxO6g4gAjse11gz5/KjikitqUm5F/i5e+iz1jmoed7hYu X-Received: by 2002:a17:907:2118:: with SMTP id qn24mr9315397ejb.141.1571415064715; Fri, 18 Oct 2019 09:11:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571415064; cv=none; d=google.com; s=arc-20160816; b=BxIIaefug5H2irCuQiRDs7L5dzLLtiK9BmyPoEqLj3zAxp+YXLy/Vp3RauZhvBloCh /+eZ6zNfvcxZf8lJ/y0cajNUhBb5m45PmeQiXQ5j+LwjLEqdM2oathZb/y9aHk4lUi5R 7FVu5siKNlanqLmezwctZZZwl/mO0IxzSEDNutZvp2c5ZG56klLdbaGr2LKMMPITdKOL aM8M/UXy2MZDoCCnFTTeGyJlUbxsdATggpO9TDaMn7KBXHBw9a1o2JC56mFEuc78vTDq etziJymeVwn98YiUezSN8U4QhLKBVoo63xlA/c8uzt+836yCLJn9sKHQ+vm0ZBmv/z+b MPuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=SzRVhVCQSEs4UpxvfljRvYSxQu5VFVx82TZExeQC7I8=; b=moQCPwcfm297lTEXJ9fkfL50/v8sxwXzMVeaehBEhD8Lim0X3yWgKCwJo3dmiCxYFb NchMHbv+yMdZkmo/Sh0j9srdpN1kFFUfGN9ufskKf9/gxDL1EZeNukP/145RFjqNU4HO 8S4Sz3iZPTLBAM6C5SWWJBLVH6r1ogVLidD/5zoDw0maI5fEmiKBUJZuQncoTxg0HhYY kL7qPASn56SZhIK53O9c6c2ozhj17hDEzDXjqNP6cNlAJHqX6U1PeSclz4EmP4fFMX3k 8pyyrY6xOa46Ek3piHhALwVB8/QKmTrONKUUNoyTL0WlPcMobwDWosUQf2IlpmhboKax Heog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=TZOVdcpB; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d27si4229942ede.381.2019.10.18.09.11.04; Fri, 18 Oct 2019 09:11:04 -0700 (PDT) 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; dkim=pass header.i=@google.com header.s=20161025 header.b=TZOVdcpB; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442946AbfJRQLA (ORCPT + 26 others); Fri, 18 Oct 2019 12:11:00 -0400 Received: from mail-pl1-f201.google.com ([209.85.214.201]:41358 "EHLO mail-pl1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2442937AbfJRQK7 (ORCPT ); Fri, 18 Oct 2019 12:10:59 -0400 Received: by mail-pl1-f201.google.com with SMTP id b10so4032543pls.8 for ; Fri, 18 Oct 2019 09:10:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=SzRVhVCQSEs4UpxvfljRvYSxQu5VFVx82TZExeQC7I8=; b=TZOVdcpBJiow5T4VOPKVfmYmovhUmd2ZBG9xflMRKW8S5BQ2L7yu5g6JY0/TCCHH+I XufZXerCCZfchS8x9jnvOoLMze/QWKGKm/0eGk215XJdEA1kME5jv8jnjb92Pb1eVWkw yiTgUjP8Rao1lkPZ3wsgn20YfPu5vdw09AcOGQOKuwSW35OqEXFlPzTQhP7pZvaCNMAW MWtaplAUSr+50SFN34KRGzFF9OlQtJcKYXSWZanQMwKs4H+DZ9A3MX4sVyK4cRYJFJ+w rlR21WxyyCXlD1Tc/Mn6bTnrGGsiH8nauEVx60lyfrl/C39gDgUhzHfYMSQ6uZ9ljLwO QH/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=SzRVhVCQSEs4UpxvfljRvYSxQu5VFVx82TZExeQC7I8=; b=R3Qxzdx0DRgYjw7UYw8BRDlmWDBUZc0Hvb95sh9dyDRH/M9iBeMvPUECWOdmNqJM5J UpkIRTa92koufrNqfyjCURLoyGeyT6BL6hAEvxxPH3shBdtjrpZH7DK3Zm86dLUV2IPF UBEEj/diZoeYUsOiAMVFYdhIVO05vtq6lNiMuw6WdKuVXL3/q1asoIGPqajGoM8KUguB GzIi2bou0RJLjkiEozIwlujGrXwtFHb6BDghFYv7MP+KPUou8SOo8lXuzKo6W8gmJBfK gnmGz7rt+/B67q3D9SjHxI7+1+WtcZ7xqW9qOzhaE8qF4Fn70SkWO8VbJ9uf9HeMjbEc P/Og== X-Gm-Message-State: APjAAAWhLq/P86jLJOjEw/fPS5kWZtXQ3nfUZ2OwP0Ej2VOXMRE5U+9M pRptgrE1Oa0ewt/B/C9VDpuDirbTLg8Ldn/Ey8c= X-Received: by 2002:a65:68c2:: with SMTP id k2mr10843389pgt.241.1571415058696; Fri, 18 Oct 2019 09:10:58 -0700 (PDT) Date: Fri, 18 Oct 2019 09:10:19 -0700 In-Reply-To: <20191018161033.261971-1-samitolvanen@google.com> Message-Id: <20191018161033.261971-5-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> X-Mailer: git-send-email 2.23.0.866.gb869b98d4c-goog Subject: [PATCH 04/18] arm64: kernel: avoid x18 as an arbitrary temp register From: Sami Tolvanen To: Will Deacon , Catalin Marinas , Steven Rostedt , Ard Biesheuvel Cc: Dave Martin , Kees Cook , Laura Abbott , Mark Rutland , Nick Desaulniers , clang-built-linux@googlegroups.com, kernel-hardening@lists.openwall.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Sami Tolvanen Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ard Biesheuvel The code in __cpu_soft_restart() uses x18 as an arbitrary temp register, which will shortly be disallowed. So use x8 instead. Link: https://patchwork.kernel.org/patch/9836877/ Signed-off-by: Ard Biesheuvel Signed-off-by: Sami Tolvanen --- arch/arm64/kernel/cpu-reset.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.23.0.866.gb869b98d4c-goog diff --git a/arch/arm64/kernel/cpu-reset.S b/arch/arm64/kernel/cpu-reset.S index 6ea337d464c4..32c7bf858dd9 100644 --- a/arch/arm64/kernel/cpu-reset.S +++ b/arch/arm64/kernel/cpu-reset.S @@ -42,11 +42,11 @@ ENTRY(__cpu_soft_restart) mov x0, #HVC_SOFT_RESTART hvc #0 // no return -1: mov x18, x1 // entry +1: mov x8, x1 // entry mov x0, x2 // arg0 mov x1, x3 // arg1 mov x2, x4 // arg2 - br x18 + br x8 ENDPROC(__cpu_soft_restart) .popsection From patchwork Fri Oct 18 16:10:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sami Tolvanen X-Patchwork-Id: 176896 Delivered-To: patch@linaro.org Received: by 2002:a92:7e96:0:0:0:0:0 with SMTP id q22csp1065761ill; Fri, 18 Oct 2019 09:11:08 -0700 (PDT) X-Google-Smtp-Source: APXvYqxoF0E18/PkW+A2R1SEqlckPqZ2Au6U/xL/I4SbQqKUb6yGhFYWZeiCQUdaGvIyWEogNlku X-Received: by 2002:a50:f390:: with SMTP id g16mr10463829edm.41.1571415068385; Fri, 18 Oct 2019 09:11:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571415068; cv=none; d=google.com; s=arc-20160816; b=o0OWNpOPMYFfQHoB5AzIFfuPQ56zMdGAeNwIANEDSVJ9AiNkxwWo0UOj015scfJpYd hOOTqaA74KN4glJ+1AbIW1l3c0OSmDnaDW1RUpNRN+Nf6BAIJjbHLQMtsKo81kRpip1b cvqji6cOZ5imuDEhbDUCATEKzxaWRsNKfw8nRA7uCwhvFntP5N0tTgxye8T6u3YpFVvg NIqOM75gEE/26aFdTDSlIjrk6UV6Ny26syqkzjni5cebLdBET5dxXe/XbwzdQoG+jA12 Yd3pDme02qPFMv0ChSbGAM68gPsVhrx9sNN2V1i73LFuorRRLjfY0CePSbgLQs+Dym/Q 0hAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=soVi6argGh8CkyJ/tZS/XQoN8aAv6F/7ncnrrIAGrbI=; b=bBTsb7Eh9LZBzCPMcEhdTpVYk4Yp+odlP3OV2vzpFta81qjwNF/icgycAD6tP6fv+t tgNI+6IduCznIPK8wRoCVY6HLd5ZZsC1WYTd8ur9bWog9yWGNFxH1jBKBQ2rdS76OFB3 UvFbJv2vdIsRVhHr4cga4p5tHtxY7I/wYZOguIqj12oNw0foMfQamGMC2IXWyZmqFZ/R gWqdB6x4HreD2BdIrjPWu8aWZXGLzWMBFtqwIdtPw+tugYOvncD/5t4JDl+ZrLLIIQ+I VRBqFXUxr6naZrFpbDacb3gTWxovT/LXv+EKS2+Ghu/iOb2bBU0icJ7tbmhbarHenMx+ 2tOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=RTWmB+YR; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id jx7si3783714ejb.84.2019.10.18.09.11.08; Fri, 18 Oct 2019 09:11:08 -0700 (PDT) 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; dkim=pass header.i=@google.com header.s=20161025 header.b=RTWmB+YR; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442957AbfJRQLF (ORCPT + 26 others); Fri, 18 Oct 2019 12:11:05 -0400 Received: from mail-vs1-f73.google.com ([209.85.217.73]:47476 "EHLO mail-vs1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2442937AbfJRQLD (ORCPT ); Fri, 18 Oct 2019 12:11:03 -0400 Received: by mail-vs1-f73.google.com with SMTP id r26so1566823vsq.14 for ; Fri, 18 Oct 2019 09:11:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=soVi6argGh8CkyJ/tZS/XQoN8aAv6F/7ncnrrIAGrbI=; b=RTWmB+YRhbyTrupTegTePDqh83wahNiLo24V/vkd3XNh2/VjRfOzsP8l9UA07iBYVh cNCOrmz1KApedjuZfTuf+oEAy7uJ9vOjlPpxsg7OkJReg5LlWaNnJSadKKQxT6uV8oo9 DYHGRvWBz3/GUdtlA0wIAJuRmYFSW5vXFhnZ39LEFxcVI9DqpO8eIN9kDWvp9NjS8BGy xN5pkbK5dusYfEE++LF7k5cNY+Cu1x/v4ps1Ft2zcALY7q2NKOD2KsdADykKFGjX/ek9 pgnN2RfC3QCLk3Iaa8HyaKxHiBf6citZAP2zBGFrT6GXMyCWAMsRsDGnPTlW+RbabIhg vExA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=soVi6argGh8CkyJ/tZS/XQoN8aAv6F/7ncnrrIAGrbI=; b=fzmkheGA7ta/bA4L4nyFJeMhCP2jGDqdw084+96IHN+nSqSEXsMYU3RNJvvwdnUv16 YU3DUp0AwYOTc5XBxKc4oIiA+iABk7+OefUgsclHzMJGwleUqwMrq+P1tPOC34IiK4nQ vvCbl1FMLrLJKcB01ltUwOXVJN9g5RJDtMFh6CxUB53jomqN6mA/bD0Jqd5HYOEtWf9/ gpgXaTjvZCSoGybGkprdvtCXZKEjBxPN659CWOSrK6BtKxgnHojA6xQvP0GL4oBLfSpX VKC6Co4ejXesMN07lvoK+4aNBfbqhLHOSVgTLDZa7aiWrMcARHHA16um8goaZF7SvOjd h2Fg== X-Gm-Message-State: APjAAAUNuJgVIxOyO4TA8OtUi8mB5xybtq0n0G1ShRQYW4wzH/3wWsqG wswO1q1QaHDXMOZlhO7VX//aElekpvMjz8M9S6A= X-Received: by 2002:a67:e34b:: with SMTP id s11mr5965401vsm.195.1571415062790; Fri, 18 Oct 2019 09:11:02 -0700 (PDT) Date: Fri, 18 Oct 2019 09:10:20 -0700 In-Reply-To: <20191018161033.261971-1-samitolvanen@google.com> Message-Id: <20191018161033.261971-6-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> X-Mailer: git-send-email 2.23.0.866.gb869b98d4c-goog Subject: [PATCH 05/18] arm64: kbuild: reserve reg x18 from general allocation by the compiler From: Sami Tolvanen To: Will Deacon , Catalin Marinas , Steven Rostedt , Ard Biesheuvel Cc: Dave Martin , Kees Cook , Laura Abbott , Mark Rutland , Nick Desaulniers , clang-built-linux@googlegroups.com, kernel-hardening@lists.openwall.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Sami Tolvanen Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ard Biesheuvel Before we can start using register x18 for a special purpose (as permitted by the AAPCS64 ABI), we need to tell the compiler that it is off limits for general allocation. So tag it as 'fixed', and remove the mention from the LL/SC compiler flag override. Link: https://patchwork.kernel.org/patch/9836881/ Signed-off-by: Ard Biesheuvel Signed-off-by: Sami Tolvanen --- arch/arm64/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.23.0.866.gb869b98d4c-goog Reviewed-by: Nick Desaulniers diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 2c0238ce0551..1c7b276bc7c5 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -55,7 +55,7 @@ endif KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) \ $(compat_vdso) $(cc_has_k_constraint) -KBUILD_CFLAGS += -fno-asynchronous-unwind-tables +KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -ffixed-x18 KBUILD_CFLAGS += $(call cc-disable-warning, psabi) KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) $(compat_vdso)