From patchwork Mon Apr 12 01:48:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464930 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=jXw/0pSP; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWqc52YJz9sWl for ; Mon, 12 Apr 2021 11:49:00 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235768AbhDLBtO (ORCPT ); Sun, 11 Apr 2021 21:49:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57870 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235543AbhDLBtO (ORCPT ); Sun, 11 Apr 2021 21:49:14 -0400 Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4391AC061574 for ; Sun, 11 Apr 2021 18:48:57 -0700 (PDT) Received: by mail-pf1-x434.google.com with SMTP id w8so4701996pfn.9 for ; Sun, 11 Apr 2021 18:48:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aLyKsyw9sIoArVGBtYw5cRtydAgVXgDSKIe0OwzaCV4=; b=jXw/0pSPTFSGWIdK+HT4jurvmUaZzcuX7h66cpcjF3Sjg5rO7ma6aElWYfxb6fA2EK xHRHvjFCi8716ayxrFTXzww59CY1hpcGiLrRG4WMUxzupX81p1L0ZZega/toc1mEa8t/ AAjBj1TbZTOAgWui7684KS5z4NXThpRjzCkHj24xtPH4oApe9+wbgkT5VKPCy0Eiad30 LU5nn8u96bG/YPJo53hTmZW7lbuglZ+r6ak2avNU6CAWhKLpvJ6AJ2EZkY6p5whrUuy5 02Tu4rSZjlMEZOLgB3vUrTJEfpuLtBOt2Ce32+Pmc0S9LwB3LSlRWMauQNLHnFxRS5RU SMFw== 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=aLyKsyw9sIoArVGBtYw5cRtydAgVXgDSKIe0OwzaCV4=; b=N+qoqWVsGwwHo/a5HefsorI7BlFgUy7ZP32MtKsFXNH2GITp2sAb2EVqViHObh9Cdi K4Lb3UZ6RZhXRwhD6rgy1c0NiMw81yzjvjbDnnWCQO2w6qj6RM5tGrR9GEGMBcQxUceq 4/0TrO6v3FCpyNz5bdyQI4Rke9xWrG+5edyILurjvLEadw/7B8drUBRtvjPVjK3V9cVj wi6aZlWeZuBhIUZ1VVC9uYrL7SDjPHNwPXS30pyBK2U0PPeb6D9L6DFlqlPHa6DKguaK 5laeDrDA1G/splnlKRb+3K2f7ovuOjspY36g86GzURTzhTAuV/0HJ/AirZ0kK7TqXxiR poag== X-Gm-Message-State: AOAM533ntqLnZLNBaFgyiEpYhMMbnla2UvwNldnSuPifWigZQj5EQ7/R 5BgqlbRSCHxwVtsc/TT25hT6nudIRW4= X-Google-Smtp-Source: ABdhPJwVVgyG2pNezNnGPNdHbgDY56uIPCUnZowGZA2eA7iggYrIDec+aRlb9vDLZxXwYU/wXMudRg== X-Received: by 2002:a62:5cc7:0:b029:24b:3525:9dbd with SMTP id q190-20020a625cc70000b029024b35259dbdmr5561696pfb.3.1618192136638; Sun, 11 Apr 2021 18:48:56 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.48.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:48:56 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org Subject: [PATCH v1 01/12] KVM: PPC: Book3S HV P9: Restore host CTRL SPR after guest exit Date: Mon, 12 Apr 2021 11:48:34 +1000 Message-Id: <20210412014845.1517916-2-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org The host CTRL (runlatch) value is not restored after guest exit. The host CTRL should always be 1 except in CPU idle code, so this can result in the host running with runlatch clear, and potentially switching to a different vCPU which then runs with runlatch clear as well. This has little effect on P9 machines, CTRL is only responsible for some PMU counter logic in the host and so other than corner cases of software relying on that, or explicitly reading the runlatch value (Linux does not appear to be affected but it's possible non-Linux guests could be), there should be no execution correctness problem, though it could be used as a covert channel between guests. There may be microcontrollers, firmware or monitoring tools that sample the runlatch value out-of-band, however since the register is writable by guests, these values would (should) not be relied upon for correct operation of the host, so suboptimal performance or incorrect reporting should be the worst problem. Fixes: 95a6432ce9038 ("KVM: PPC: Book3S HV: Streamlined guest entry/exit path on P9 for radix guests") Signed-off-by: Nicholas Piggin --- arch/powerpc/kvm/book3s_hv.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 13bad6bf4c95..208a053c9adf 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -3728,7 +3728,10 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit, vcpu->arch.dec_expires = dec + tb; vcpu->cpu = -1; vcpu->arch.thread_cpu = -1; + /* Save guest CTRL register, set runlatch to 1 */ vcpu->arch.ctrl = mfspr(SPRN_CTRLF); + if (!(vcpu->arch.ctrl & 1)) + mtspr(SPRN_CTRLT, vcpu->arch.ctrl | 1); vcpu->arch.iamr = mfspr(SPRN_IAMR); vcpu->arch.pspb = mfspr(SPRN_PSPB); From patchwork Mon Apr 12 01:48:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464931 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=pI/M474d; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWqf2Vkrz9sXL for ; Mon, 12 Apr 2021 11:49:02 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235844AbhDLBtS (ORCPT ); Sun, 11 Apr 2021 21:49:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235543AbhDLBtS (ORCPT ); Sun, 11 Apr 2021 21:49:18 -0400 Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C293CC061574 for ; Sun, 11 Apr 2021 18:48:59 -0700 (PDT) Received: by mail-pg1-x531.google.com with SMTP id p12so8168289pgj.10 for ; Sun, 11 Apr 2021 18:48:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1Lonny+8YXdFwRIoOFSgIHHCV4tfZl5PHVskAqriodI=; b=pI/M474dTooKHxk5/UB1/wWjIpzBcPplLtbL5Sef9zGP2pYoZJCdvxX1JnceZfj7bk xtFQA/TK10Rp802AY4DvvSp2KyqiEvQ2Y8oz6obGc9x/J+Jw/78mtsjvPJQdUP+vSbMn nRG+t+OjgJcPmGrS3lOS65fPKT0C5twID1WKgeymqEaXGnCB7IKVkqfmlbJXn6dv319J kFQYYIzqZMFVMYSbWQKfubCXlIpQ9yKRON5IG2bmJzwEY2eg6mIJ2yb66BpS8chVO+Dv 0qoxVHuMNva5bENjw6HNZnotZrW0gCDZAKU3qdW1KBgSzj6SZcAGnEdbRNJJd65LR4Qc ObNA== 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=1Lonny+8YXdFwRIoOFSgIHHCV4tfZl5PHVskAqriodI=; b=DUxXRoLKnH7yvqJwoXylYpoCfFEFYgLhE94hPFcOkGnsSQhIU8dvcyAQDFg+g5KmxA Udl/NloU9AglFADJzhn+jJJyWtfXhw02lgKVak04Bnx+3AUBgWLH5/qIVnSaVZ2trPu/ EvshFOqFLxUUBqjLCWMdHuUxVmnWL8Ra/sz+r6J3iUts4f2hG0B0EGHSLauEC9whzsYg jT8R74Kc/6m5UC5wI5dJoidzcEzqd3m5sa31F5+YI4PVx8MHBNvzw6FmJS/OlhMQrN5h D8JCMFej2bwsQjaD7Hgi8PjlWjGEAvhWIS42iYyifxGCYNapXUeNt4rR9Xc/J7v9q8c+ 3tcw== X-Gm-Message-State: AOAM530WwBzfXpYWtysB42hybwuvbLc6I7VFnt8JmOmifm9k3szuvshQ mwnMCF9S0UUKr69YiVW95TQSCiwqdkw= X-Google-Smtp-Source: ABdhPJwpXA9j+XU3lCC53r8azGhRlTzJAgAoEnGX348wqbqec1vAUDur3kfcGLGJDF+1qh89i4E1/w== X-Received: by 2002:a63:330b:: with SMTP id z11mr7260989pgz.32.1618192139254; Sun, 11 Apr 2021 18:48:59 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.48.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:48:59 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Fabiano Rosas Subject: [PATCH v1 02/12] KVM: PPC: Book3S HV: Nested move LPCR sanitising to sanitise_hv_regs Date: Mon, 12 Apr 2021 11:48:35 +1000 Message-Id: <20210412014845.1517916-3-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org This will get a bit more complicated in future patches. Move it into the helper function. This change allows the L1 hypervisor to determine some of the LPCR bits that the L0 is using to run it, which could be a privilege violation (LPCR is HV-privileged), although the same problem exists now for HFSCR for example. Discussion of the HV privilege issue is ongoing and can be resolved with a later change. Reviewed-by: Fabiano Rosas Signed-off-by: Nicholas Piggin --- arch/powerpc/kvm/book3s_hv_nested.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c index 0cd0e7aad588..3060e5deffc8 100644 --- a/arch/powerpc/kvm/book3s_hv_nested.c +++ b/arch/powerpc/kvm/book3s_hv_nested.c @@ -132,8 +132,27 @@ static void save_hv_return_state(struct kvm_vcpu *vcpu, int trap, } } +/* + * This can result in some L0 HV register state being leaked to an L1 + * hypervisor when the hv_guest_state is copied back to the guest after + * being modified here. + * + * There is no known problem with such a leak, and in many cases these + * register settings could be derived by the guest by observing behaviour + * and timing, interrupts, etc., but it is an issue to consider. + */ static void sanitise_hv_regs(struct kvm_vcpu *vcpu, struct hv_guest_state *hr) { + struct kvmppc_vcore *vc = vcpu->arch.vcore; + u64 mask; + + /* + * Don't let L1 change LPCR bits for the L2 except these: + */ + mask = LPCR_DPFD | LPCR_ILE | LPCR_TC | LPCR_AIL | LPCR_LD | + LPCR_LPES | LPCR_MER; + hr->lpcr = (vc->lpcr & ~mask) | (hr->lpcr & mask); + /* * Don't let L1 enable features for L2 which we've disabled for L1, * but preserve the interrupt cause field. @@ -271,8 +290,6 @@ long kvmhv_enter_nested_guest(struct kvm_vcpu *vcpu) u64 hv_ptr, regs_ptr; u64 hdec_exp; s64 delta_purr, delta_spurr, delta_ic, delta_vtb; - u64 mask; - unsigned long lpcr; if (vcpu->kvm->arch.l1_ptcr == 0) return H_NOT_AVAILABLE; @@ -321,9 +338,7 @@ long kvmhv_enter_nested_guest(struct kvm_vcpu *vcpu) vcpu->arch.nested_vcpu_id = l2_hv.vcpu_token; vcpu->arch.regs = l2_regs; vcpu->arch.shregs.msr = vcpu->arch.regs.msr; - mask = LPCR_DPFD | LPCR_ILE | LPCR_TC | LPCR_AIL | LPCR_LD | - LPCR_LPES | LPCR_MER; - lpcr = (vc->lpcr & ~mask) | (l2_hv.lpcr & mask); + sanitise_hv_regs(vcpu, &l2_hv); restore_hv_regs(vcpu, &l2_hv); @@ -335,7 +350,7 @@ long kvmhv_enter_nested_guest(struct kvm_vcpu *vcpu) r = RESUME_HOST; break; } - r = kvmhv_run_single_vcpu(vcpu, hdec_exp, lpcr); + r = kvmhv_run_single_vcpu(vcpu, hdec_exp, l2_hv.lpcr); } while (is_kvmppc_resume_guest(r)); /* save L2 state for return */ From patchwork Mon Apr 12 01:48:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464932 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=oEWyQKid; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWqg5NYMz9sXh for ; Mon, 12 Apr 2021 11:49:03 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236166AbhDLBtT (ORCPT ); Sun, 11 Apr 2021 21:49:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57894 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235543AbhDLBtT (ORCPT ); Sun, 11 Apr 2021 21:49:19 -0400 Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5C1EFC061574 for ; Sun, 11 Apr 2021 18:49:02 -0700 (PDT) Received: by mail-pg1-x52e.google.com with SMTP id z16so8178982pga.1 for ; Sun, 11 Apr 2021 18:49:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bHMMJ1bBn1zkHC5+ylovzEBfrAxZyP46YygKZ7eOaes=; b=oEWyQKid7q2UrUYlKoo1kKPGZ1P4xmq0Ou2ZE5nEt8906/mb9y68BDahSuPKkH0Mq7 20TgZwz0R+xHFeTTHwxbgw2ZAQhxmVm105cCjTlvtdSlS1jWv3+9nPijrp2dqaKcEDwy hubzVWkloMYyw55PCxA/IDcdnnNxj9m9ihS6qcdoDebQhzl2Q3TueWbit9dBdiNAU1NQ nhvVZShQ/LI4CHxmy4ugjQmRXqlJd5sZ3TR0wnYKc1GUcKaB9RiHkiXTv6FaN3sZMrDK ddx7072tkpb7WWKdHdbSIsL6rDiHkDjYsALmTyu0GT8VmXRiNJYmj5aDeZfpf47iXpbV RvoQ== 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=bHMMJ1bBn1zkHC5+ylovzEBfrAxZyP46YygKZ7eOaes=; b=NCAettFFQ1Wof2cJg7KItw2cMc+PP28Rp0yULeqei59SnL6C3HByUrUm2HFpV8WZi5 SC7bXeFfEZX2s8lEEFAbLCLd8XR25KZulDhiIO+K/jGBSBk1M2qREx0NLiTU2SVUTuqw oGYjtW2DY2tDMncMduv9NFQ5tRlpzO2XxZjbhfX9j1ZpfIb9EQV3xJD2a4jt48VafJfZ 44Cd2RsfOBumfpk8I1q21TanZr/TJk2QK2znedQSiTHVISqY6ByHwA8PoNmcWEKsKXOu 2b/6Obkl5ovi4ehlTMRJdXbPm2DzQ72AIfOCueZKv3NVZU+XgstLeZSxBXBZN3wK/zWx wSiw== X-Gm-Message-State: AOAM530enFYjjwUjyicSGRbeR3gGvjMPJjZNxsluEjdt/rYyiO11m+v2 FYj4LrRhmixIgnlYzQxrR57q16uZj6M= X-Google-Smtp-Source: ABdhPJzao+p6qJTLxrT6zgF943n7L1u4OwFDjcAq7G9obKRcYVjADV2oV3eWhwI+vyeqh9VeTJX3aA== X-Received: by 2002:a63:d50c:: with SMTP id c12mr6648720pgg.145.1618192141836; Sun, 11 Apr 2021 18:49:01 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.48.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:01 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Fabiano Rosas Subject: [PATCH v1 03/12] KVM: PPC: Book3S HV: Add a function to filter guest LPCR bits Date: Mon, 12 Apr 2021 11:48:36 +1000 Message-Id: <20210412014845.1517916-4-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org Guest LPCR depends on hardware type, and future changes will add restrictions based on errata and guest MMU mode. Move this logic to a common function and use it for the cases where the guest wants to update its LPCR (or the LPCR of a nested guest). This also adds a warning in other places that set or update LPCR if we try to set something that would have been disallowed by the filter, as a sanity check. Reviewed-by: Fabiano Rosas Signed-off-by: Nicholas Piggin --- arch/powerpc/include/asm/kvm_book3s.h | 2 + arch/powerpc/kvm/book3s_hv.c | 68 ++++++++++++++++++++------- arch/powerpc/kvm/book3s_hv_nested.c | 8 +++- 3 files changed, 59 insertions(+), 19 deletions(-) diff --git a/arch/powerpc/include/asm/kvm_book3s.h b/arch/powerpc/include/asm/kvm_book3s.h index 2f5f919f6cd3..c58121508157 100644 --- a/arch/powerpc/include/asm/kvm_book3s.h +++ b/arch/powerpc/include/asm/kvm_book3s.h @@ -258,6 +258,8 @@ extern long kvmppc_hv_get_dirty_log_hpt(struct kvm *kvm, extern void kvmppc_harvest_vpa_dirty(struct kvmppc_vpa *vpa, struct kvm_memory_slot *memslot, unsigned long *map); +extern unsigned long kvmppc_filter_lpcr_hv(struct kvm *kvm, + unsigned long lpcr); extern void kvmppc_update_lpcr(struct kvm *kvm, unsigned long lpcr, unsigned long mask); extern void kvmppc_set_fscr(struct kvm_vcpu *vcpu, u64 fscr); diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 208a053c9adf..268e31c7e49c 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -1635,6 +1635,35 @@ static int kvm_arch_vcpu_ioctl_set_sregs_hv(struct kvm_vcpu *vcpu, return 0; } +/* + * Enforce limits on guest LPCR values based on hardware availability, + * guest configuration, and possibly hypervisor support and security + * concerns. + */ +unsigned long kvmppc_filter_lpcr_hv(struct kvm *kvm, unsigned long lpcr) +{ + /* On POWER8 and above, userspace can modify AIL */ + if (!cpu_has_feature(CPU_FTR_ARCH_207S)) + lpcr &= ~LPCR_AIL; + + /* + * On POWER9, allow userspace to enable large decrementer for the + * guest, whether or not the host has it enabled. + */ + if (!cpu_has_feature(CPU_FTR_ARCH_300)) + lpcr &= ~LPCR_LD; + + return lpcr; +} + +static void verify_lpcr(struct kvm *kvm, unsigned long lpcr) +{ + if (lpcr != kvmppc_filter_lpcr_hv(kvm, lpcr)) { + WARN_ONCE(1, "lpcr 0x%lx differs from filtered 0x%lx\n", + lpcr, kvmppc_filter_lpcr_hv(kvm, lpcr)); + } +} + static void kvmppc_set_lpcr(struct kvm_vcpu *vcpu, u64 new_lpcr, bool preserve_top32) { @@ -1643,6 +1672,23 @@ static void kvmppc_set_lpcr(struct kvm_vcpu *vcpu, u64 new_lpcr, u64 mask; spin_lock(&vc->lock); + + /* + * Userspace can only modify + * DPFD (default prefetch depth), ILE (interrupt little-endian), + * TC (translation control), AIL (alternate interrupt location), + * LD (large decrementer). + * These are subject to restrictions from kvmppc_filter_lcpr_hv(). + */ + mask = LPCR_DPFD | LPCR_ILE | LPCR_TC | LPCR_AIL | LPCR_LD; + + /* Broken 32-bit version of LPCR must not clear top bits */ + if (preserve_top32) + mask &= 0xFFFFFFFF; + + new_lpcr = kvmppc_filter_lpcr_hv(kvm, + (vc->lpcr & ~mask) | (new_lpcr & mask)); + /* * If ILE (interrupt little-endian) has changed, update the * MSR_LE bit in the intr_msr for each vcpu in this vcore. @@ -1661,25 +1707,8 @@ static void kvmppc_set_lpcr(struct kvm_vcpu *vcpu, u64 new_lpcr, } } - /* - * Userspace can only modify DPFD (default prefetch depth), - * ILE (interrupt little-endian) and TC (translation control). - * On POWER8 and POWER9 userspace can also modify AIL (alt. interrupt loc.). - */ - mask = LPCR_DPFD | LPCR_ILE | LPCR_TC; - if (cpu_has_feature(CPU_FTR_ARCH_207S)) - mask |= LPCR_AIL; - /* - * On POWER9, allow userspace to enable large decrementer for the - * guest, whether or not the host has it enabled. - */ - if (cpu_has_feature(CPU_FTR_ARCH_300)) - mask |= LPCR_LD; + vc->lpcr = new_lpcr; - /* Broken 32-bit version of LPCR must not clear top bits */ - if (preserve_top32) - mask &= 0xFFFFFFFF; - vc->lpcr = (vc->lpcr & ~mask) | (new_lpcr & mask); spin_unlock(&vc->lock); } @@ -4644,8 +4673,10 @@ void kvmppc_update_lpcr(struct kvm *kvm, unsigned long lpcr, unsigned long mask) struct kvmppc_vcore *vc = kvm->arch.vcores[i]; if (!vc) continue; + spin_lock(&vc->lock); vc->lpcr = (vc->lpcr & ~mask) | lpcr; + verify_lpcr(kvm, vc->lpcr); spin_unlock(&vc->lock); if (++cores_done >= kvm->arch.online_vcores) break; @@ -4973,6 +5004,7 @@ static int kvmppc_core_init_vm_hv(struct kvm *kvm) kvmppc_setup_partition_table(kvm); } + verify_lpcr(kvm, lpcr); kvm->arch.lpcr = lpcr; /* Initialization for future HPT resizes */ diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c index 3060e5deffc8..d14fe32f167b 100644 --- a/arch/powerpc/kvm/book3s_hv_nested.c +++ b/arch/powerpc/kvm/book3s_hv_nested.c @@ -151,7 +151,13 @@ static void sanitise_hv_regs(struct kvm_vcpu *vcpu, struct hv_guest_state *hr) */ mask = LPCR_DPFD | LPCR_ILE | LPCR_TC | LPCR_AIL | LPCR_LD | LPCR_LPES | LPCR_MER; - hr->lpcr = (vc->lpcr & ~mask) | (hr->lpcr & mask); + + /* + * Additional filtering is required depending on hardware + * and configuration. + */ + hr->lpcr = kvmppc_filter_lpcr_hv(vcpu->kvm, + (vc->lpcr & ~mask) | (hr->lpcr & mask)); /* * Don't let L1 enable features for L2 which we've disabled for L1, From patchwork Mon Apr 12 01:48:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464933 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=VvzPE5UU; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWqk2YjCz9sXh for ; Mon, 12 Apr 2021 11:49:06 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236231AbhDLBtW (ORCPT ); Sun, 11 Apr 2021 21:49:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57904 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235543AbhDLBtW (ORCPT ); Sun, 11 Apr 2021 21:49:22 -0400 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 25372C061574 for ; Sun, 11 Apr 2021 18:49:05 -0700 (PDT) Received: by mail-pj1-x102b.google.com with SMTP id x21-20020a17090a5315b029012c4a622e4aso6191057pjh.2 for ; Sun, 11 Apr 2021 18:49:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uGMuXcs706W1WbX3G4YQ40n7ZTHeko237s34UogQXMQ=; b=VvzPE5UUHzeT7qXKTS5YzcuXeU6aLDKX4JEikAx22eH4s4ilVaqIhdRIRZ+VK4Dl+s zfzb3Eq0tzAxQ4/Nb1G6vzS1uHjfzWMLBzSlvWvQAegPa2OLEiNSwtQztnKx/aCglv9g uCIk7l67Un+mw0HtiGAP4UOMQA2qWsojBsyEoD0K5+SbtPjojdq9F+nBdmTBEVaAGxBt fPtg7kNcc5dpjrLaH/Kc0KvzCLZrTvAzBeyzntAckqHRLZ9Yj79PaK5sQJYcTx67ODkM RpPL0LFuhlQfOSITvdrSrTnBMcVnXfpbTcwKKRWJQUOzLJfk84Sq9/hFRORLbFMErfJj 6InA== 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=uGMuXcs706W1WbX3G4YQ40n7ZTHeko237s34UogQXMQ=; b=MjBOscXSctMGNXcaqI4dASV05y6I9+LqKnV8lTjR3aUvWKW3q7fM7wgg6ypOTj/bmy OqtUN9wcp27mf0rTpqau9yNYXxcshYHhjBApkS8wWWF6THo+hJe90s6NRB2+AMeGHQQ0 fGtWuYay3hXoS4nGVcUiw/y/nPM2E0lEdpn+KXPwvSXGGz1cYsRoMW8CBbR/9/Nbs8wN 48qCV4dJlQn8ZNqqhH9EQa9GyCuv09nXfUGHQH5RdNI/l8d2ykHWB8Gr+2CyHUO0naLj YULGAASBvAtiaMjQ3o3s6brpi2Pts1DSBs0uI0KmooYTCuibD/0WX19ez04yRd+ft/U7 lbNw== X-Gm-Message-State: AOAM532kDhEi0sQa3k36RaQzE5YRoenVQawXhKv2z5QnP9vlKYr9tFhv zqJbELgcVYCSmqgg78RLTZe0zSj3qBI= X-Google-Smtp-Source: ABdhPJxowsYUEbRFMRe0mazdV/T9VA4uysRjEZ1Cu9bz/VPnPbSdw4JNr0uDSTPsboXRnc1kPjALeQ== X-Received: by 2002:a17:902:e803:b029:e9:1f79:2427 with SMTP id u3-20020a170902e803b02900e91f792427mr24307901plg.21.1618192144662; Sun, 11 Apr 2021 18:49:04 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.49.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:04 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Paul Mackerras , Fabiano Rosas Subject: [PATCH v1 04/12] KVM: PPC: Book3S HV: Disallow LPCR[AIL] to be set to 1 or 2 Date: Mon, 12 Apr 2021 11:48:37 +1000 Message-Id: <20210412014845.1517916-5-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org These are already disallowed by H_SET_MODE from the guest, also disallow these by updating LPCR directly. AIL modes can affect the host interrupt behaviour while the guest LPCR value is set, so filter it here too. Acked-by: Paul Mackerras Suggested-by: Fabiano Rosas Signed-off-by: Nicholas Piggin --- arch/powerpc/kvm/book3s_hv.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 268e31c7e49c..3de8a1f89a7d 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -803,7 +803,10 @@ static int kvmppc_h_set_mode(struct kvm_vcpu *vcpu, unsigned long mflags, vcpu->arch.dawrx1 = value2; return H_SUCCESS; case H_SET_MODE_RESOURCE_ADDR_TRANS_MODE: - /* KVM does not support mflags=2 (AIL=2) */ + /* + * KVM does not support mflags=2 (AIL=2) and AIL=1 is reserved. + * Keep this in synch with kvmppc_filter_guest_lpcr_hv. + */ if (mflags != 0 && mflags != 3) return H_UNSUPPORTED_FLAG_START; return H_TOO_HARD; @@ -1645,6 +1648,8 @@ unsigned long kvmppc_filter_lpcr_hv(struct kvm *kvm, unsigned long lpcr) /* On POWER8 and above, userspace can modify AIL */ if (!cpu_has_feature(CPU_FTR_ARCH_207S)) lpcr &= ~LPCR_AIL; + if ((lpcr & LPCR_AIL) != LPCR_AIL_3) + lpcr &= ~LPCR_AIL; /* LPCR[AIL]=1/2 is disallowed */ /* * On POWER9, allow userspace to enable large decrementer for the From patchwork Mon Apr 12 01:48:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464934 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=SYWY0d3o; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWqn1K2nz9sXh for ; Mon, 12 Apr 2021 11:49:09 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236248AbhDLBtZ (ORCPT ); Sun, 11 Apr 2021 21:49:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57918 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235543AbhDLBtY (ORCPT ); Sun, 11 Apr 2021 21:49:24 -0400 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5609C061574 for ; Sun, 11 Apr 2021 18:49:07 -0700 (PDT) Received: by mail-pl1-x62c.google.com with SMTP id t22so5196934ply.1 for ; Sun, 11 Apr 2021 18:49:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aPW9xuVZJZuCiDrYNQXotx3oRG9X3McxReJTO2kC5og=; b=SYWY0d3oAkHA3HQIL62Nqb0zxyIXpk49D+FvlZFrRHC8iiKzs7iIbjSkYcWrt1UCwc g4FJ3SDPh+7EpWhSOmC1mM74DIPF329C11OpaoPO94H5XH/nJhpM6g5octHAdEcO61qt aIT3bRA3lGXrFJIpN/YdDtcrmMqKuXB1wxPOeebU9m4ZkmckrpYITI5Pg/qDK37Lf+qQ cg5JU0MwFiT6+fN9b7hdJRdrjMz/8H1vvD0dFfgeb5thcGI+1x0v8u1AsXxVjs2jk3fO gi18DfyAAncd7ZcpG6sdiTfTvPJBRf0fpZ9SJnTJ2494KmsTEi1uivVitDlwHETY8Qbz Hlkw== 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=aPW9xuVZJZuCiDrYNQXotx3oRG9X3McxReJTO2kC5og=; b=oGmIICoCWJF251XUVhWcVIeB77+JcbwseYmwHdxqTVaIDTfTev/RH9fKiAsS/WErng o03vYPKEHPCV78LNuhiQn31sJtP8zhr0TxHqLZrjttpXEM0ZmSOrmRslFSzwsBz9S9qF y2Ry9zgtOP6cnGDKYR/mBGXFcvJTMvFtg1wfBjV+H5jBtGjEiYwX1civvKVR65mBQkE0 OT9jzRlcoegpvtG6zqFOF830FvCd9B8bfznZ6d098IIDp4FRad7+ZS7tcQ4NYUIP8iQz h4v+J+G5LWhMC9OaYhXQXjEPl0uu/GhyQWAYhXRCg0uhKUaeaxvSpQg0fy1LAc1NyU3B fdGw== X-Gm-Message-State: AOAM531ksg1s/CSEMigg5oAmHl8WNk4YC/zsp2rH4bStxFv6FIRG17dZ cUiVPTz6p3IyLGT44Wq/Z60YEDG3v0c= X-Google-Smtp-Source: ABdhPJy8SNqNyFIyV1FVhMCiP8rj7Natlar2xhV5RA3NVM+u7+4+x0Ghsb4SrJTOVJ0aBVfaYEgdtg== X-Received: by 2002:a17:90a:b10a:: with SMTP id z10mr1835470pjq.161.1618192147216; Sun, 11 Apr 2021 18:49:07 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.49.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:07 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Alexey Kardashevskiy Subject: [PATCH v1 05/12] KVM: PPC: Book3S HV: Prevent radix guests setting LPCR[TC] Date: Mon, 12 Apr 2021 11:48:38 +1000 Message-Id: <20210412014845.1517916-6-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org Prevent radix guests setting LPCR[TC]. This bit only applies to hash partitions. Reviewed-by: Alexey Kardashevskiy Signed-off-by: Nicholas Piggin --- arch/powerpc/kvm/book3s_hv.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 3de8a1f89a7d..70c6e9c27eb7 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -1645,6 +1645,10 @@ static int kvm_arch_vcpu_ioctl_set_sregs_hv(struct kvm_vcpu *vcpu, */ unsigned long kvmppc_filter_lpcr_hv(struct kvm *kvm, unsigned long lpcr) { + /* LPCR_TC only applies to HPT guests */ + if (kvm_is_radix(kvm)) + lpcr &= ~LPCR_TC; + /* On POWER8 and above, userspace can modify AIL */ if (!cpu_has_feature(CPU_FTR_ARCH_207S)) lpcr &= ~LPCR_AIL; From patchwork Mon Apr 12 01:48:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464935 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=QkYMrAhT; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWqq4Z1Sz9t0G for ; Mon, 12 Apr 2021 11:49:11 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236249AbhDLBt2 (ORCPT ); Sun, 11 Apr 2021 21:49:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235543AbhDLBt1 (ORCPT ); Sun, 11 Apr 2021 21:49:27 -0400 Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com [IPv6:2607:f8b0:4864:20::1030]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D27C0C061574 for ; Sun, 11 Apr 2021 18:49:10 -0700 (PDT) Received: by mail-pj1-x1030.google.com with SMTP id r13so2013053pjf.2 for ; Sun, 11 Apr 2021 18:49:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cpb0XptfeBMEd7qKsPHT+YBhIbp2/2VOCByAd+xlm2w=; b=QkYMrAhT2zZNRUqAfP+TulXEuU+UstC9cxmsiDYerJmc2MhpzRX2wg4ls53EG2D8+V 7h+m/ZWZMjNtANeJ/aFsXQKygp68Zfvsn686XeQHs+qlZSHfVRTnHN0hHkYUnCDz8jNN gohiOQHcRCcGMQtJ7dc/86F9o1NWeexOF3I88etqvFKJh03KgGNwGzkSSHGIjXJE5Ilq XsGSdMillDam8701eiEBTubhfA3751zVq+eiZVpR2Mp5MU2Tyju56DLrZKLeRDZz9JUD SaLUiSgSRKreQXpjrxexQBpZqHpyyE//+PzlmSvonJ6HfPlnBUuPgOSqWdXuSn0tApMo W+/Q== 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=cpb0XptfeBMEd7qKsPHT+YBhIbp2/2VOCByAd+xlm2w=; b=DbNzOnL58V/ewZ4jb4xQr01NlxjXtlOI5IoR9vRQNFeVUM9WfiVCn9X2OWudHBNYyc eQDNBDDfQ2F6u7haZX/FnxQSYXQNs0h8RPNQPU4tRzxKVhf6nQoavs6vCKFWdmvmyWFZ hat/14eJxWqTqoQsb3qTnkNblwGJDIV9MvKStLITQTu0gEqAKPhdCu0t/0+lQBAczoNO 31NxMs2csjbZQL8nxqlnxFz0x4BSomHyxry41lSHJDlEORkPZzdTOGwYlD71l/y3gUEz onEwGiY5bOE38A23xKL8z0nilUXrXBaThC6+47L7i790G07NA2ZKNFf+9dwLUiPT/rl4 sqGg== X-Gm-Message-State: AOAM531Y8Ft2tez/srwm1G1XinhQpRz38M2eLD9eabaRbD9YREkELBPa BMqmuKtLW+GdTV4tKZXVOD1MoQL1NI4= X-Google-Smtp-Source: ABdhPJxUFVcm9udHXZivrKxIi7Y8tuEXU1lceLemYm3P4Efs1s+ojSOkkmJnlrqeco1bkvq2YzM2Lw== X-Received: by 2002:a17:902:527:b029:ea:b5ef:689d with SMTP id 36-20020a1709020527b02900eab5ef689dmr10954544plf.19.1618192150372; Sun, 11 Apr 2021 18:49:10 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.49.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:10 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Paul Mackerras , Fabiano Rosas , Daniel Axtens Subject: [PATCH v1 06/12] KVM: PPC: Book3S HV: Remove redundant mtspr PSPB Date: Mon, 12 Apr 2021 11:48:39 +1000 Message-Id: <20210412014845.1517916-7-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org This SPR is set to 0 twice when exiting the guest. Acked-by: Paul Mackerras Suggested-by: Fabiano Rosas Reviewed-by: Daniel Axtens Signed-off-by: Nicholas Piggin --- arch/powerpc/kvm/book3s_hv.c | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 70c6e9c27eb7..b88df175aa76 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -3790,7 +3790,6 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit, mtspr(SPRN_DSCR, host_dscr); mtspr(SPRN_TIDR, host_tidr); mtspr(SPRN_IAMR, host_iamr); - mtspr(SPRN_PSPB, 0); if (host_amr != vcpu->arch.amr) mtspr(SPRN_AMR, host_amr); From patchwork Mon Apr 12 01:48:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464936 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=oaMIqZMu; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWqv0ZrCz9sXM for ; Mon, 12 Apr 2021 11:49:15 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236250AbhDLBtb (ORCPT ); Sun, 11 Apr 2021 21:49:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235543AbhDLBtb (ORCPT ); Sun, 11 Apr 2021 21:49:31 -0400 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24350C061574 for ; Sun, 11 Apr 2021 18:49:14 -0700 (PDT) Received: by mail-pj1-x102d.google.com with SMTP id b8-20020a17090a5508b029014d0fbe9b64so7912572pji.5 for ; Sun, 11 Apr 2021 18:49:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kcMSsKOd9XJdn7alZvC43Pwxot302AJo0nnXaxeTFDs=; b=oaMIqZMuF9h46PXHq2w5frutdhjVdbzFQ/RgtRuTZVsNH25Sql/BRImfJpf2DppH+j qrcUl+hm7A4MnjXqL07G7TbJAe3kwQG0DBJiDVNrEKZhFisbJOV3/48725lnxI6lQ80t 6uBV3yhMmdYlqlJNvozEpRvCtdmlzMNOZhbynxjhOy9PyZk0wvkLGwGdopOE3aRadKrj 3aGzBNzvLnoZfH4ZVkZPWzHDVOLcYF5+B1w21OsesRB0Ui0mJ5GRqYGGEwYJDbetXO/w DSIT9c5rrwu4Co2c88/CeDFnYFS9es9laG7oVlLkEdfb3rNNNpvDGR4Zy9cgzsB75oMG FtaA== 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=kcMSsKOd9XJdn7alZvC43Pwxot302AJo0nnXaxeTFDs=; b=pMJIHGRdVeeW6meJAyIXQPv6TWHqxqilU9pomJTHHGunKqSH0JLYcUomYI8xGYSpXG qjeyNZ/JhqCxjAbTO1FCpIqSUpRAXfhFWSU9US1fTxaELFtyz2TfDKIUJxFntN0l1QP/ 6mhpk931kYad7oIlJEmK/Ftp9Cqpz2LaFucYU9tqtCacsQKF5Y+e8BGejxSFdTkHrJ7E YY6RcunUyaELXfe0tb+ncbIO1vl/kRZJJ/0mmcJJMTaDnjZWnFh2dvbg8krhK8EQIue7 kFu190L/OVICKv1Y/HOsnQxNhr82mFCxYyiIoROjwGlCuFXYJ0b7wWpfs83Deii8pTAM l3Rg== X-Gm-Message-State: AOAM530j6SNlz4+ey30yX4L+OrDtDm6rezRZDftcTSqIb0NPCFYlx3KB wKAhrl7COZl03mfVv5jbMWOfSEMpU88= X-Google-Smtp-Source: ABdhPJxkVMeKqonbtISJdYvssi+IxOxmxROFHYyGS5xTROxGG3Onv78B4DAmhk+vPzuVS+H+r0AYLQ== X-Received: by 2002:a17:902:e886:b029:e7:386b:1b30 with SMTP id w6-20020a170902e886b02900e7386b1b30mr24255037plg.42.1618192153584; Sun, 11 Apr 2021 18:49:13 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.49.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:13 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Paul Mackerras , Daniel Axtens Subject: [PATCH v1 07/12] KVM: PPC: Book3S HV: remove unused kvmppc_h_protect argument Date: Mon, 12 Apr 2021 11:48:40 +1000 Message-Id: <20210412014845.1517916-8-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org The va argument is not used in the function or set by its asm caller, so remove it to be safe. Acked-by: Paul Mackerras Reviewed-by: Daniel Axtens Signed-off-by: Nicholas Piggin --- arch/powerpc/include/asm/kvm_ppc.h | 3 +-- arch/powerpc/kvm/book3s_hv_rm_mmu.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h index 8aacd76bb702..9531b1c1b190 100644 --- a/arch/powerpc/include/asm/kvm_ppc.h +++ b/arch/powerpc/include/asm/kvm_ppc.h @@ -767,8 +767,7 @@ long kvmppc_h_remove(struct kvm_vcpu *vcpu, unsigned long flags, unsigned long pte_index, unsigned long avpn); long kvmppc_h_bulk_remove(struct kvm_vcpu *vcpu); long kvmppc_h_protect(struct kvm_vcpu *vcpu, unsigned long flags, - unsigned long pte_index, unsigned long avpn, - unsigned long va); + unsigned long pte_index, unsigned long avpn); long kvmppc_h_read(struct kvm_vcpu *vcpu, unsigned long flags, unsigned long pte_index); long kvmppc_h_clear_ref(struct kvm_vcpu *vcpu, unsigned long flags, diff --git a/arch/powerpc/kvm/book3s_hv_rm_mmu.c b/arch/powerpc/kvm/book3s_hv_rm_mmu.c index 88da2764c1bb..7af7c70f1468 100644 --- a/arch/powerpc/kvm/book3s_hv_rm_mmu.c +++ b/arch/powerpc/kvm/book3s_hv_rm_mmu.c @@ -673,8 +673,7 @@ long kvmppc_h_bulk_remove(struct kvm_vcpu *vcpu) } long kvmppc_h_protect(struct kvm_vcpu *vcpu, unsigned long flags, - unsigned long pte_index, unsigned long avpn, - unsigned long va) + unsigned long pte_index, unsigned long avpn) { struct kvm *kvm = vcpu->kvm; __be64 *hpte; From patchwork Mon Apr 12 01:48:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464937 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=qTMiMu74; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWqz3X1Jz9sXH for ; Mon, 12 Apr 2021 11:49:19 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236344AbhDLBte (ORCPT ); Sun, 11 Apr 2021 21:49:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57960 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236273AbhDLBtd (ORCPT ); Sun, 11 Apr 2021 21:49:33 -0400 Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5E37C061574 for ; Sun, 11 Apr 2021 18:49:16 -0700 (PDT) Received: by mail-pj1-x102c.google.com with SMTP id u11so2143125pjr.0 for ; Sun, 11 Apr 2021 18:49:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qHa7loSaCaOe2yFractxh5MmgHLG7n6qdLPHRqtdv+o=; b=qTMiMu74C3cU7uIFkilT1+fdbkAhrt4ePW3vZD7pt2vGMQR63kuv9Y/ZyPOQh5i+Cp H6RJhtD9uB/idaD6j7WsiQYletAT4pRHb6pAt3DZX6uwAFPBlFV4rMPrR+TxojRhlhC2 TF6PjjjCn81qqvIPxiTyi7GBlKY785mX6tmjSurLBA0PYE7OtxKuB6cn5QOfOW9MmzEp Dva4Z93i3Xyp/F/O4T7MsKcwMDLEdm323+FcteSrXO0W0aHZTp49XKGYejdXUgBWFD5x 3wmZ47JVlKE5a2BCirGvQiCZfQBjgSByslE3923G24MNzVSRCaFPZOC0VnD9pi97EEhF bhqQ== 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=qHa7loSaCaOe2yFractxh5MmgHLG7n6qdLPHRqtdv+o=; b=UNoYgLu//z9+BOIqHzarO+r8i+Vjs5ZYnffjm1Il8F7pgUQtLr0rQsVJ/AhfOxirwy J8dBErUEA6EWhfKrr5SRo960GNbzz0b07C0o17+xhruZXOQXqzObSlaG5dVOWMwNPifd YIXkX0T/CUx+QiP2gM/Kh/Y/3mEk5E4P/bdv5gpOmkREm7GvIs+zl4ZF/tnh8bjCGgNh JjqXRV5mY/kQF5cI/V8LIUpEqEzGWihTBoABdkVxv7//aidpknruqH5fpXeWUtCOi2bR TpqSjmvVEj9QZtZbHqrl7jnNT26fQdhM7QE5MUu+poYPAx8j2pwk69xGkKTif5eYvRiH eh5Q== X-Gm-Message-State: AOAM530mnQs7jeoPrSodxGQ4ybkBTcpEp6HIkfW3Sjk80/DBAKB9Oy6k vnePstQBlceQWDkpX7bHK5D5ym2IIR0= X-Google-Smtp-Source: ABdhPJxsRw68Kuw9UM06lABNNgAc4DSU7v570Xv3VuVAxUNmDP4QdjaKk9VHiw+fQkRyT7bibRSJlg== X-Received: by 2002:a17:902:b483:b029:e9:eef4:4f16 with SMTP id y3-20020a170902b483b02900e9eef44f16mr14075893plr.38.1618192156440; Sun, 11 Apr 2021 18:49:16 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.49.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:16 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Paul Mackerras , Daniel Axtens Subject: [PATCH v1 08/12] KVM: PPC: Book3S HV: Fix CONFIG_SPAPR_TCE_IOMMU=n default hcalls Date: Mon, 12 Apr 2021 11:48:41 +1000 Message-Id: <20210412014845.1517916-9-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org This config option causes the warning in init_default_hcalls to fire because the TCE handlers are in the default hcall list but not implemented. Acked-by: Paul Mackerras Reviewed-by: Daniel Axtens Signed-off-by: Nicholas Piggin --- arch/powerpc/kvm/book3s_hv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index b88df175aa76..4a532410e128 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -5412,8 +5412,10 @@ static unsigned int default_hcall_list[] = { H_READ, H_PROTECT, H_BULK_REMOVE, +#ifdef CONFIG_SPAPR_TCE_IOMMU H_GET_TCE, H_PUT_TCE, +#endif H_SET_DABR, H_SET_XDABR, H_CEDE, From patchwork Mon Apr 12 01:48:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464938 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=p7hMf2tY; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWr037Z3z9sXH for ; Mon, 12 Apr 2021 11:49:20 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236345AbhDLBtg (ORCPT ); Sun, 11 Apr 2021 21:49:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236273AbhDLBtg (ORCPT ); Sun, 11 Apr 2021 21:49:36 -0400 Received: from mail-pg1-x533.google.com (mail-pg1-x533.google.com [IPv6:2607:f8b0:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B8B94C061574 for ; Sun, 11 Apr 2021 18:49:19 -0700 (PDT) Received: by mail-pg1-x533.google.com with SMTP id l76so8173189pga.6 for ; Sun, 11 Apr 2021 18:49:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=z2fLHBAlH6bMHiwD8ZSE8QbPd3NRupfIKb21fqNXnZg=; b=p7hMf2tYA10VOWRMIzi44LqFQ2CoDByIZfx56TEpJUgd1gHL6CCsQmXTE8FTsgaMvD peH4lGHU6CvfW++H+LD1R4Y7k46i028/OVBscxf8tOIz5zUnPnIsbDUPdLlkRYqIEVgf ZHcTaGlworvRlmEnIQmfgYP7SDjFMeoymNAIVAU8pK+7JIQDMc34nYCjvT0+Ktpa8Q+I aVGufIrDy3waGFh8SKgnbJpa6FWYQGfXX2UfMUdqBEjqQnnYsZrdVBBrJtZ2reVrxLiX LMDm+Kou92cHhc2MmYao3uJCCkaoA/piS/1DpgTkc/X9ZnINTvg7afHtw9QjOUAEZmq0 ie9A== 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=z2fLHBAlH6bMHiwD8ZSE8QbPd3NRupfIKb21fqNXnZg=; b=JL4nhVEjOvBV7q8ISEHJQaG4Eb6UziTKUN5vhPHyqW9vFYypavE8feDO9UayXPf3Vf R2TbiPeeoK3zCOsU6kpd83DHt4uMeUMtbGlVE3ghxBsHHB+FF0mWjjgjAsIeCZUBoaIN aXnFhRhXJXua8kFqkWnxrFj2YZ9H5/aAZ49EExWTyjybjxOcO42LOeuI204uFdB3Gol4 metgoaBFjgyB07Hdz41ecA0Ql2jb8QGxSGtCGOHIWApEY5KN4gFwF/k7jX460tEHPBwT SiqR3HS/CGCdZaQ7AIFk9/KVmXtvGcJipnFf/Led/gwKjoZGb/Whg4AVdF7M3vrDH1X3 o3ew== X-Gm-Message-State: AOAM531U05taXYaGEeFCaCpJxie2FEN4vnHnxsmVKw+cfnUcT9XxQIHz osN3McuLFLK/lOCeQ0oNJn+iYa0I6lg= X-Google-Smtp-Source: ABdhPJyGwKQHQ40lX6Tr0ZUdfWy4PrLWq/Nc/fBvKNzpneGC8SGnH8UVYCjX+1KZbFLpfw+CAVlbMQ== X-Received: by 2002:a63:6682:: with SMTP id a124mr15283236pgc.363.1618192159275; Sun, 11 Apr 2021 18:49:19 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.49.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:19 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Paul Mackerras , Fabiano Rosas Subject: [PATCH v1 09/12] powerpc/64s: Remove KVM handler support from CBE_RAS interrupts Date: Mon, 12 Apr 2021 11:48:42 +1000 Message-Id: <20210412014845.1517916-10-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org Cell does not support KVM. Acked-by: Paul Mackerras Reviewed-by: Fabiano Rosas Signed-off-by: Nicholas Piggin --- arch/powerpc/kernel/exceptions-64s.S | 6 ------ 1 file changed, 6 deletions(-) diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index 8082b690e874..a0515cb829c2 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S @@ -2530,8 +2530,6 @@ EXC_VIRT_NONE(0x5100, 0x100) INT_DEFINE_BEGIN(cbe_system_error) IVEC=0x1200 IHSRR=1 - IKVM_SKIP=1 - IKVM_REAL=1 INT_DEFINE_END(cbe_system_error) EXC_REAL_BEGIN(cbe_system_error, 0x1200, 0x100) @@ -2701,8 +2699,6 @@ EXC_COMMON_BEGIN(denorm_exception_common) INT_DEFINE_BEGIN(cbe_maintenance) IVEC=0x1600 IHSRR=1 - IKVM_SKIP=1 - IKVM_REAL=1 INT_DEFINE_END(cbe_maintenance) EXC_REAL_BEGIN(cbe_maintenance, 0x1600, 0x100) @@ -2754,8 +2750,6 @@ EXC_COMMON_BEGIN(altivec_assist_common) INT_DEFINE_BEGIN(cbe_thermal) IVEC=0x1800 IHSRR=1 - IKVM_SKIP=1 - IKVM_REAL=1 INT_DEFINE_END(cbe_thermal) EXC_REAL_BEGIN(cbe_thermal, 0x1800, 0x100) From patchwork Mon Apr 12 01:48:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464940 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=OBwFNlHK; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWr40F1rz9sjB for ; Mon, 12 Apr 2021 11:49:24 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236358AbhDLBtk (ORCPT ); Sun, 11 Apr 2021 21:49:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236273AbhDLBtk (ORCPT ); Sun, 11 Apr 2021 21:49:40 -0400 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D0D5C061574 for ; Sun, 11 Apr 2021 18:49:23 -0700 (PDT) Received: by mail-pl1-x630.google.com with SMTP id v8so5513498plz.10 for ; Sun, 11 Apr 2021 18:49:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vWW5W66AStCwE8ZE+rX2Qsn+64wyA/hQNDRmb+lytiQ=; b=OBwFNlHKu3vt+A7+hIsLrnCi6AW9MsbtBjLIBrpH9G/UTvXVFe6LUVy1KTYHgLnHHY tNfpZ3u+7cTl/cZNHqbMxVfJn3NMO5XSvXpLxcOYcrDcDpE0pgs1b5PW5YS5AgLUKe0M /CF4tGhw8THn8IlsbLDXFlAUVg0jKjcs3gOAbxfx4Sgh1Ye+jB0v0LfaM4o9E/nSm+IE QKg+vUGBGcpylKKhteMxr5J8Hj9fqRmDCZDQeG/KAY9MmMacSU8KovwRAvdZJDqJ24Lw gj+tO39hMOZblRTejjTU0TsnpTl/R4d8TKvk7qGQuzftWHrLcUNWdCxtVKY0PJLM0jdb 2r4Q== 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=vWW5W66AStCwE8ZE+rX2Qsn+64wyA/hQNDRmb+lytiQ=; b=ao9LxvM4RswPRUGYlDL/oIeyPgF307r0vithfGK0CTzNM1oqwU8zTuLWjVQfaXwWdK vTiCk5pJNQOo2zjYtghtCwq1gMZGsdKrnf2EW4bSFFwrUGLVDIkdhuETBmO6ij0CVvZc 7y+I4b+w5P9tm29H5oJcfK/2m55huyiTfU2cxSeD7v43i7qRBY8VDJLTECDgfUs9eGSd v/jFU+N+5XUMjA/OVZ5WYbeoYE0cN1ywqDhrIHyAxtgrpbmy18CUCPStsIzFevKxKJOZ fN28ENFAiJMDpneRK0dzRxuF+hMhkoILYCbAF0InJucikYjzkqtNrx8UVs+0TpjvDrnc LvUg== X-Gm-Message-State: AOAM533Pao4VVBwLGEu18Y2oq2vAwdefGCl9m31aoKRKy4yRkUWNNURs 392LHHnk67o/jEk9i0nmYPMvL3WH0Do= X-Google-Smtp-Source: ABdhPJxChevwUV8mRTIcW1OaJdjplfJ+g+uRdMJ+AMvcHamDpA4kqq/bVGDd1YU9zpIf4lfZXJWe0w== X-Received: by 2002:a17:902:aa87:b029:ea:fe2b:e59c with SMTP id d7-20020a170902aa87b02900eafe2be59cmr2180852plr.53.1618192162861; Sun, 11 Apr 2021 18:49:22 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.49.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:22 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Paul Mackerras , Daniel Axtens , Fabiano Rosas Subject: [PATCH v1 10/12] powerpc/64s: remove KVM SKIP test from instruction breakpoint handler Date: Mon, 12 Apr 2021 11:48:43 +1000 Message-Id: <20210412014845.1517916-11-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org The code being executed in KVM_GUEST_MODE_SKIP is hypervisor code with MSR[IR]=0, so the faults of concern are the d-side ones caused by access to guest context by the hypervisor. Instruction breakpoint interrupts are not a concern here. It's unlikely any good would come of causing breaks in this code, but skipping the instruction that caused it won't help matters (e.g., skip the mtmsr that sets MSR[DR]=0 or clears KVM_GUEST_MODE_SKIP). [Paul notes: "the 0x1300 interrupt was dropped from the architecture a long time ago and is not generated by P7, P8, P9 or P10." So add a comment about this in the handler code while we're here. ] Acked-by: Paul Mackerras Reviewed-by: Daniel Axtens Reviewed-by: Fabiano Rosas Signed-off-by: Nicholas Piggin --- arch/powerpc/kernel/exceptions-64s.S | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index a0515cb829c2..358cd4b0c08e 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S @@ -2549,11 +2549,16 @@ EXC_REAL_NONE(0x1200, 0x100) EXC_VIRT_NONE(0x5200, 0x100) #endif - +/** + * Interrupt 0x1300 - Instruction Address Breakpoint Interrupt. + * This has been removed from the ISA before 2.01, which is the earliest + * 64-bit BookS ISA supported, however the G5 / 970 implements this + * interrupt with a non-architected feature available through the support + * processor interface. + */ INT_DEFINE_BEGIN(instruction_breakpoint) IVEC=0x1300 #ifdef CONFIG_KVM_BOOK3S_PR_POSSIBLE - IKVM_SKIP=1 IKVM_REAL=1 #endif INT_DEFINE_END(instruction_breakpoint) From patchwork Mon Apr 12 01:48:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464941 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=O9RmOhIx; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWr70dJ8z9sXh for ; Mon, 12 Apr 2021 11:49:27 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236370AbhDLBtn (ORCPT ); Sun, 11 Apr 2021 21:49:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236273AbhDLBtn (ORCPT ); Sun, 11 Apr 2021 21:49:43 -0400 Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70C1AC061574 for ; Sun, 11 Apr 2021 18:49:26 -0700 (PDT) Received: by mail-pg1-x530.google.com with SMTP id h25so8180671pgm.3 for ; Sun, 11 Apr 2021 18:49:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XTwV9xVlVat7TnR+O83IRQJ050ZVGX6uPq2CbLxvr5s=; b=O9RmOhIx1DGathnRcaSu5SzCxKQF+4Akj37mGf7GxOBJ2aolpsQpcJf4V8cL6B1fNj GC94N9CbP8C/qhgXDF8pmsdvl6snHX6gPwsgYMQyM+RwaJkOBGcj6Kx1hIA6YEEUvEBP oPzgOhAa5l+0Cweoi6smHaBtQCOhZ+gwN+2wRxxDERXLGo1TdOC/CMlhnGT8jKGRVVMd HfkpAFm+Hsur0zczwIK7+7HJlxq2kLgYQBfe4H5fCci60bnMp4Lf8EXB8amStM3NP5s6 E2ufkJFuyKvHIrb84Ws6xOZOjCfNf01MFnXnVfR6sY178igVD7oYlQ5GGvM6SIfxu8sh L7bw== 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=XTwV9xVlVat7TnR+O83IRQJ050ZVGX6uPq2CbLxvr5s=; b=eGK47KZSoBLy42NAPtPGKg4aDxk8Ve7zOAhHXSfHlfrpWnrFOawknWj+sMgMv7IVIt lbWxGAh/rtepnFi0DR2y8iyRtPnB6KF+PqTdpY4PLQ9+0Eh0p4SOSkHoq1S0GjlITxiR YyllJjP2v2SZF1ztbjcY04GtHRBMOCSzxH4q1eMoaKGMngqEOQmmomN04P4HfmQ9oG7n NJsgoDp9rgeTw8BFLCIm8TxW+W0bCYpYz9rQWPFeeE3eI1LR8EM3EATOQ23+eKHCU4Mt aV4w8vN8/Vt8trCqPkg9NLGEyc5Agm1XUPdOtz2ROmD08vzObaxQiNSVZIyjhhR00weM Pq5Q== X-Gm-Message-State: AOAM531aRxBrgKn/WqnaJrX9C1+1TUiWi8s6Yv7p5lFozIzUBxx2jr7l i1e6DUuI8nwLhaPSg/Gdc0XYAuJcbUE= X-Google-Smtp-Source: ABdhPJwbg6i98NNEeEozGYRCNdfJgCf4ho8JVlJw1369W45u2CmjNYrxCXfVbhdeh5NfWmvRoVwZvg== X-Received: by 2002:aa7:864d:0:b029:24b:dd03:edec with SMTP id a13-20020aa7864d0000b029024bdd03edecmr4355468pfo.18.1618192165971; Sun, 11 Apr 2021 18:49:25 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.49.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:25 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Paul Mackerras , Daniel Axtens , Fabiano Rosas Subject: [PATCH v1 11/12] KVM: PPC: Book3S HV: Ensure MSR[ME] is always set in guest MSR Date: Mon, 12 Apr 2021 11:48:44 +1000 Message-Id: <20210412014845.1517916-12-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org Rather than add the ME bit to the MSR at guest entry, make it clear that the hypervisor does not allow the guest to clear the bit. The ME set is kept in guest entry for now, but a future patch will warn if it's not present. Acked-by: Paul Mackerras Reviewed-by: Daniel Axtens Reviewed-by: Fabiano Rosas Signed-off-by: Nicholas Piggin --- arch/powerpc/kvm/book3s_hv_builtin.c | 3 +++ arch/powerpc/kvm/book3s_hv_nested.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c index 158d309b42a3..41cb03d0bde4 100644 --- a/arch/powerpc/kvm/book3s_hv_builtin.c +++ b/arch/powerpc/kvm/book3s_hv_builtin.c @@ -662,6 +662,9 @@ static void kvmppc_end_cede(struct kvm_vcpu *vcpu) void kvmppc_set_msr_hv(struct kvm_vcpu *vcpu, u64 msr) { + /* Guest must always run with ME enabled. */ + msr = msr | MSR_ME; + /* * Check for illegal transactional state bit combination * and if we find it, force the TS field to a safe state. diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c index d14fe32f167b..fb03085c902b 100644 --- a/arch/powerpc/kvm/book3s_hv_nested.c +++ b/arch/powerpc/kvm/book3s_hv_nested.c @@ -343,7 +343,9 @@ long kvmhv_enter_nested_guest(struct kvm_vcpu *vcpu) vcpu->arch.nested = l2; vcpu->arch.nested_vcpu_id = l2_hv.vcpu_token; vcpu->arch.regs = l2_regs; - vcpu->arch.shregs.msr = vcpu->arch.regs.msr; + + /* Guest must always run with ME enabled. */ + vcpu->arch.shregs.msr = vcpu->arch.regs.msr | MSR_ME; sanitise_hv_regs(vcpu, &l2_hv); restore_hv_regs(vcpu, &l2_hv); From patchwork Mon Apr 12 01:48:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1464942 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=vGp7Me7o; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4FJWrG5CQnz9sWl for ; Mon, 12 Apr 2021 11:49:34 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236273AbhDLBtu (ORCPT ); Sun, 11 Apr 2021 21:49:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58016 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236377AbhDLBtr (ORCPT ); Sun, 11 Apr 2021 21:49:47 -0400 Received: from mail-pg1-x535.google.com (mail-pg1-x535.google.com [IPv6:2607:f8b0:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F18D2C061574 for ; Sun, 11 Apr 2021 18:49:28 -0700 (PDT) Received: by mail-pg1-x535.google.com with SMTP id k8so8181492pgf.4 for ; Sun, 11 Apr 2021 18:49:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SrGG57sCJsQ8pkpP+3mT7sg63D+3Ca06l9D6kjJ6tqw=; b=vGp7Me7om9cdFzBdOGxgR7OLxv7BopSYT5hdQT1LGRCoYIbbqpNA3VGdLIt7Dw0FkC DJWxCWLmNqzExkIFKOqQDGgYk6CVirQ3fR/a1+UGoek7boS9IRiCtCxITLnQ/ULkzNsb /J8vNc3Fvw/5p1cpzhO/wh0zxBoUvPnEafKakczeIQaPprv3zb0ZcpqygIviQ7XDBJtO yaLzRoo5tzNnbrQytROss9GyS+tE4i387QxKgFaIrIFRgO6C/E6VBmhRfPdvi8O7Sdqv X0+qbLHRWug9oEs1/3hnf8Cz//0AKUysW1vqpiVaOBf0DYlnxRk7gVS/OpDodrexIsUf d6Ow== 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=SrGG57sCJsQ8pkpP+3mT7sg63D+3Ca06l9D6kjJ6tqw=; b=a3tsm8I3ku07SDsdCf+Zjqk5T3sYnZsyyoXOJr4nZaAMRwV83mEDfHHWd0GgBXTH6D E7EbWsbN1C1eeg4YBMaCvNoxiZc8/CbkLBPCT11qasiA18zWY6yS72dgZX8jMrVxIVJ8 5ToiBWs5BI2MZcqDrlTIMGl7WyeOdNjdIyzSZ/G1JSR1itaFaOfB6SoBtyq3tg2Qsdc/ 3LiOGbNLEp8ZQGQTWGiPIIzCNPA5gDneD0EYFaVOLXPWAiRspIDvPrPk0o5glpLjN7D+ k4lUYAtfE8fSfQF91ASGOuNeQLhMkIz9AOzySSWOASsE1TxeKCB6CdnwB48DSr/TfShP hp5Q== X-Gm-Message-State: AOAM532VZhrDqxvbNoj0kkRGKyHeFdSA2CCR71MrUH+Uur1Co8k+vq8H hNohkGo8Y3s5ZzjKgwJdQXlQnA4zwI8= X-Google-Smtp-Source: ABdhPJw3ZMdGiv+pO6hLANfM5DZrtutZPxb6wmVxQnFeXntYKqtXZQN53v9QtdoFZphST5/uIwMcIw== X-Received: by 2002:a63:1a50:: with SMTP id a16mr25388216pgm.92.1618192168509; Sun, 11 Apr 2021 18:49:28 -0700 (PDT) Received: from bobo.ibm.com (193-116-90-211.tpgi.com.au. [193.116.90.211]) by smtp.gmail.com with ESMTPSA id m9sm9502345pgt.65.2021.04.11.18.49.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Apr 2021 18:49:28 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Paul Mackerras Subject: [PATCH v1 12/12] KVM: PPC: Book3S HV: Ensure MSR[HV] is always clear in guest MSR Date: Mon, 12 Apr 2021 11:48:45 +1000 Message-Id: <20210412014845.1517916-13-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20210412014845.1517916-1-npiggin@gmail.com> References: <20210412014845.1517916-1-npiggin@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org Rather than clear the HV bit from the MSR at guest entry, make it clear that the hypervisor does not allow the guest to set the bit. The HV clear is kept in guest entry for now, but a future patch will warn if it is set. Acked-by: Paul Mackerras Signed-off-by: Nicholas Piggin Reviewed-by: Fabiano Rosas --- arch/powerpc/kvm/book3s_hv_builtin.c | 4 ++-- arch/powerpc/kvm/book3s_hv_nested.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c index 41cb03d0bde4..7a0e33a9c980 100644 --- a/arch/powerpc/kvm/book3s_hv_builtin.c +++ b/arch/powerpc/kvm/book3s_hv_builtin.c @@ -662,8 +662,8 @@ static void kvmppc_end_cede(struct kvm_vcpu *vcpu) void kvmppc_set_msr_hv(struct kvm_vcpu *vcpu, u64 msr) { - /* Guest must always run with ME enabled. */ - msr = msr | MSR_ME; + /* Guest must always run with ME enabled, HV disabled. */ + msr = (msr | MSR_ME) & ~MSR_HV; /* * Check for illegal transactional state bit combination diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c index fb03085c902b..60724f674421 100644 --- a/arch/powerpc/kvm/book3s_hv_nested.c +++ b/arch/powerpc/kvm/book3s_hv_nested.c @@ -344,8 +344,8 @@ long kvmhv_enter_nested_guest(struct kvm_vcpu *vcpu) vcpu->arch.nested_vcpu_id = l2_hv.vcpu_token; vcpu->arch.regs = l2_regs; - /* Guest must always run with ME enabled. */ - vcpu->arch.shregs.msr = vcpu->arch.regs.msr | MSR_ME; + /* Guest must always run with ME enabled, HV disabled. */ + vcpu->arch.shregs.msr = (vcpu->arch.regs.msr | MSR_ME) & ~MSR_HV; sanitise_hv_regs(vcpu, &l2_hv); restore_hv_regs(vcpu, &l2_hv);