Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1297149ybt; Thu, 18 Jun 2020 05:31:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyP1k4Yd1nhOE0aub/d+MWn68pVBf+Vh+Zo9Q/qcDUydB1xOQR4mauiqdsDkJ31HXFyzARO X-Received: by 2002:a17:906:4989:: with SMTP id p9mr3877015eju.417.1592483518435; Thu, 18 Jun 2020 05:31:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592483518; cv=none; d=google.com; s=arc-20160816; b=wbM6uc5J0oZgFmnCRPDGrh/fuEOLobnO8pYkoPITHcI06rIKqzgOJ1E7DP/BvSq0sa JLnruBZYpfBk7lz6Y4CFv6aGxpUte1fEC7RXc4Ha4zgKdHcdb0m9MSbTU5y4fOI9Irji rUKKIBdYMSSww5eMGHtD/ZmGBYFE3wOO34MkOFYTZvl3LNl3/6blfimMGmS2Dam0e7AU I3RUTt30uE6h/3kG2lpNsgEPNhayoe5YHDB8Pdagy5t8sHYoNrwIif4S5AEGJIsk5Tb1 35OY7LXtgRanbbOX6JpKsgGZUum5ovSsYrcrPAMzuX9W4z4vZeG1VPV2aIAeuN5AmCA6 4iYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=5ceSCnqPU+qhFBApWd37Hj9Iarz1DhO8p+J0NPEP0HY=; b=WTWYFXB867wsgEAaypbI4jixkPUe3x4hlYJmjES6x5V8ZwU1+TIPTIg89ADsiN5Pdh VSWngzhREJfTaBvNBU/rHxsoepiy1kwANAj9Dzcrd+Ve9MnX8cptZSuVwtkaQG14Uw2p JWbtdji1/1vjiPkFAFIEdR0bo10c7azxLhAaBLqwc/QIqP6Ve/NUsW/pp6zKQKZH/Cxz eISNAnRNCtoFtzabw1w7JlEk2NvJpH4FVO3Tk0NX63LILlwvFOs+rEk4WD2aP5JJc7Q9 rHLd8e8fjKyFynBl3JlTdWuQC4W1hdxBVuwYHVb2vJMAJoiTem/hKNQOaWY4GEGkoY9T CTJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=XImm0NWh; 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 t11si2050576edi.601.2020.06.18.05.31.35; Thu, 18 Jun 2020 05:31:58 -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=XImm0NWh; 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 S1729808AbgFRM24 (ORCPT + 99 others); Thu, 18 Jun 2020 08:28:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727949AbgFRM0k (ORCPT ); Thu, 18 Jun 2020 08:26:40 -0400 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98CDFC0617B9 for ; Thu, 18 Jun 2020 05:26:13 -0700 (PDT) Received: by mail-wr1-x444.google.com with SMTP id q2so3415349wrv.8 for ; Thu, 18 Jun 2020 05:26:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5ceSCnqPU+qhFBApWd37Hj9Iarz1DhO8p+J0NPEP0HY=; b=XImm0NWhTRSHFfFBJjAzpQWgVma/Daqep8ONE/WtU0eu796P/BJ1Ml/kY6divma1BZ divyMCuPOWy2+Na9sCUHeEQHXDGfXSrgILV1ChiotyZiFrKWVTKqgspfJUGxjfiEFgAL bs5UNOB+ODc6oS4w10pOJ3JbNBTelTewFdDqnIa1dm5DMNHubszjkQpu58Yxu8UYt6kH 0U8YLbm977SDUYSQKiIzCGXda5Ch3oM5q6dqt+qPLbB2dq6mnOVBJyXBQWnz3EztZbB2 sQWwr4W/YZTBEUbTz1tEwW8ducrc7HBqZu1rOprt/H5743BsmmMTZQKJee9lmFylU00/ TXyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5ceSCnqPU+qhFBApWd37Hj9Iarz1DhO8p+J0NPEP0HY=; b=YGi+RjO5/sUmSGbnD3jpfv8ItyE8Kiq54Pi9Sn2gPpQcy3XlifpyUa9eu5OK8HeaBO Wy6kK47yWXbtQhnvBCqS0fTu069hssF8JkECq1gol60LUOBkKNOYmk2DudxOer4Smsgz YWihao8bf4ob3tA7KkbWR4RdQN4vzRKePRdp/MJWBLSoTKdP1VKE+p8HAFZNRjiCSTm7 SVBjvY4zQtcTw+mJIfgrjrxvCuAFojcaPNjTTViy14IY4Cb3XAUzfdvcjLqsMnHBgBa5 KcfN5DqOo2OE4F/qjeKMQt8nS/+lF4MJZsvPRlcGpv5t3gvHoOa5LmN5aLr0mmQjjbiy ZdOg== X-Gm-Message-State: AOAM531FCUPxFON1oSKCTZBRghqSJE6xrcRaW80/BShs+LaLap/XDYKg 7I5G32nieDu6ee9MbHdWAilUpQ== X-Received: by 2002:a5d:654c:: with SMTP id z12mr4248011wrv.315.1592483171911; Thu, 18 Jun 2020 05:26:11 -0700 (PDT) Received: from localhost ([2a01:4b00:8523:2d03:c1af:c724:158a:e200]) by smtp.gmail.com with ESMTPSA id 125sm3467359wmc.23.2020.06.18.05.26.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 18 Jun 2020 05:26:11 -0700 (PDT) From: David Brazdil To: Marc Zyngier , Will Deacon , Catalin Marinas , James Morse , Julien Thierry , Suzuki K Poulose Cc: kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, android-kvm@google.com, kernel-team@android.com, David Brazdil Subject: [PATCH v3 13/15] arm64: kvm: Add comments around __kvm_nvhe_ symbol aliases Date: Thu, 18 Jun 2020 13:25:35 +0100 Message-Id: <20200618122537.9625-14-dbrazdil@google.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200618122537.9625-1-dbrazdil@google.com> References: <20200618122537.9625-1-dbrazdil@google.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch is part of a series which builds KVM's non-VHE hyp code separately from VHE and the rest of the kernel. With all source files split between VHE/nVHE, add comments around the list of symbols where nVHE code still links against kernel proper. Split them into groups and explain how each group is currently used. Some of these dependencies will be removed in the future. Signed-off-by: David Brazdil --- arch/arm64/kernel/image-vars.h | 53 +++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/arch/arm64/kernel/image-vars.h b/arch/arm64/kernel/image-vars.h index 2cc3e7673dc2..da8f39fae5e8 100644 --- a/arch/arm64/kernel/image-vars.h +++ b/arch/arm64/kernel/image-vars.h @@ -61,30 +61,43 @@ __efistub__ctype = _ctype; * memory mappings. */ -__kvm_nvhe___hyp_panic_string = __hyp_panic_string; -__kvm_nvhe___hyp_stub_vectors = __hyp_stub_vectors; -__kvm_nvhe___icache_flags = __icache_flags; -__kvm_nvhe_arm64_const_caps_ready = arm64_const_caps_ready; -__kvm_nvhe_arm64_enable_wa2_handling = arm64_enable_wa2_handling; -__kvm_nvhe_arm64_ssbd_callback_required = arm64_ssbd_callback_required; -__kvm_nvhe_cpu_hwcap_keys = cpu_hwcap_keys; -__kvm_nvhe_cpu_hwcaps = cpu_hwcaps; +/* If nVHE code panics, it ERETs into panic() in EL1. */ +__kvm_nvhe___hyp_panic_string = __hyp_panic_string; +__kvm_nvhe_panic = panic; + +/* Values used by the hyp-init vector. */ +__kvm_nvhe___hyp_stub_vectors = __hyp_stub_vectors; +__kvm_nvhe_idmap_t0sz = idmap_t0sz; + +/* Alternative callbacks, referenced in .altinstructions. Executed in EL1. */ +__kvm_nvhe_arm64_enable_wa2_handling = arm64_enable_wa2_handling; +__kvm_nvhe_kvm_patch_vector_branch = kvm_patch_vector_branch; +__kvm_nvhe_kvm_update_va_mask = kvm_update_va_mask; + +/* Values used to convert between memory mappings, read-only after init. */ +__kvm_nvhe_kimage_voffset = kimage_voffset; + +/* Data shared with the kernel. */ +__kvm_nvhe_cpu_hwcaps = cpu_hwcaps; +__kvm_nvhe_cpu_hwcap_keys = cpu_hwcap_keys; +__kvm_nvhe___icache_flags = __icache_flags; +__kvm_nvhe_kvm_vgic_global_state = kvm_vgic_global_state; +__kvm_nvhe_arm64_ssbd_callback_required = arm64_ssbd_callback_required; +__kvm_nvhe_kvm_host_data = kvm_host_data; + +/* Static keys shared with the kernel. */ +__kvm_nvhe_arm64_const_caps_ready = arm64_const_caps_ready; #ifdef CONFIG_ARM64_PSEUDO_NMI -__kvm_nvhe_gic_pmr_sync = gic_pmr_sync; +__kvm_nvhe_gic_pmr_sync = gic_pmr_sync; #endif -__kvm_nvhe_idmap_t0sz = idmap_t0sz; -__kvm_nvhe_kimage_voffset = kimage_voffset; -__kvm_nvhe_kvm_host_data = kvm_host_data; -__kvm_nvhe_kvm_patch_vector_branch = kvm_patch_vector_branch; -__kvm_nvhe_kvm_update_va_mask = kvm_update_va_mask; -__kvm_nvhe_kvm_vgic_global_state = kvm_vgic_global_state; -__kvm_nvhe_panic = panic; +__kvm_nvhe_vgic_v2_cpuif_trap = vgic_v2_cpuif_trap; +__kvm_nvhe_vgic_v3_cpuif_trap = vgic_v3_cpuif_trap; + +/* SVE support, currently unused by nVHE. */ #ifdef CONFIG_ARM64_SVE -__kvm_nvhe_sve_load_state = sve_load_state; -__kvm_nvhe_sve_save_state = sve_save_state; +__kvm_nvhe_sve_save_state = sve_save_state; +__kvm_nvhe_sve_load_state = sve_load_state; #endif -__kvm_nvhe_vgic_v2_cpuif_trap = vgic_v2_cpuif_trap; -__kvm_nvhe_vgic_v3_cpuif_trap = vgic_v3_cpuif_trap; #endif /* CONFIG_KVM */ -- 2.27.0