From patchwork Wed May 9 02:20:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 910603 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="XsDZ9KcT"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40gg7V6p3Wz9s4t for ; Wed, 9 May 2018 12:20:38 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933185AbeEICUi (ORCPT ); Tue, 8 May 2018 22:20:38 -0400 Received: from mail-pl0-f67.google.com ([209.85.160.67]:38343 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932484AbeEICUh (ORCPT ); Tue, 8 May 2018 22:20:37 -0400 Received: by mail-pl0-f67.google.com with SMTP id c11-v6so3347262plr.5 for ; Tue, 08 May 2018 19:20:37 -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; bh=bnF+hnds10oT1RnDqfVcxxzOcyeLKc8R8oDMuCk5sjU=; b=XsDZ9KcTe7RZNzCX2CEjAziMHVlpxQUMJLKNvJ8TYisMhebej743V5s7qhxtiaf4p4 KZRpOHWDR1i2rKuaDGKEh0l7Nov8fAdirnlVUBsj4dqewhfoAiCjkgE3O6JmhNInrJx7 N5SUX98Iw3GOdGd+dEhImDH4z2fK9M4dRKIFlnNAbPO77Gz5xmiX46sp6sM19oXf8Lpi Sj5XKDwdb3+jb1JJQzokp5tJFFJOQVHge9F7tN7W9/RWs+AiFxdHIR3IQTCASu361/TF n6wpKB0WPfgTl4Q0RG3UKWyhuZ6k3NC03BRKsaxGsVGiRq5AChTZbSyhs8bs/AbBxyX/ 507Q== 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; bh=bnF+hnds10oT1RnDqfVcxxzOcyeLKc8R8oDMuCk5sjU=; b=rzHl4J9KmfisTcGJqCCKfs0naz+2EKa95zM4gAbSxCDDyA4Jg4u4w3GqqXV80rAuKv R3KHYN0wHgnZW06r2GiS6g1mINMNpF77OS6MUENLm+O89h8K603YzZjKIXhfdTcLTU8f ImhZVgvhj9a+8aHAGkWVAucntQo1DsyGjuUu0G9WeN9qP2TZLwvD5q7kuXr7G159UX3x IK5LDPjWPzLLy/GiKSluuaHdo4z+5aK5dwozn8lHLsZ8C2bd5jevm74zWw2rX1ULWDAU R3cWWcNzd/gFxWo6EU465eNd/TAE7mJ+twJnyzTxsO2nnI4Gd4fBqJZkPE1HjNcNP4vy eiVw== X-Gm-Message-State: ALQs6tB4o0KW5Qd92ftQpFCdTcWnixKHf3nJW7NkOoFuHH4v44Qu4sci x9lcjybmvkD9EbnyEiRIBbipQg== X-Google-Smtp-Source: AB8JxZrzMDSM+bJNbtPIndkJKWjuKPHYVxpcUrF4VYUMAP6+Jh9KLtds06J9nZ/c1Jpd7doA5awIbA== X-Received: by 2002:a17:902:108a:: with SMTP id c10-v6mr44961417pla.111.1525832437176; Tue, 08 May 2018 19:20:37 -0700 (PDT) Received: from roar.au.ibm.com (59-102-70-78.tpgi.com.au. [59.102.70.78]) by smtp.gmail.com with ESMTPSA id 23sm90258616pfs.147.2018.05.08.19.20.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 May 2018 19:20:36 -0700 (PDT) From: Nicholas Piggin To: kvm-ppc@vger.kernel.org Cc: Nicholas Piggin Subject: [PATCH v2 2/9] KVM: PPC: Book3S HV: radix clear pte when unmapping Date: Wed, 9 May 2018 12:20:15 +1000 Message-Id: <20180509022022.21226-3-npiggin@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180509022022.21226-1-npiggin@gmail.com> References: <20180509022022.21226-1-npiggin@gmail.com> Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org The current partition table unmap code clears the _PAGE_PRESENT bit out of the pte, which leaves pud_huge/pmd_huge true and does not clear pud_present/pmd_present. This can confuse subsequent page faults. Signed-off-by: Nicholas Piggin --- arch/powerpc/kvm/book3s_64_mmu_radix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c index a6870288c0e0..361f42c8c73e 100644 --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c @@ -584,7 +584,7 @@ int kvm_unmap_radix(struct kvm *kvm, struct kvm_memory_slot *memslot, ptep = __find_linux_pte(kvm->arch.pgtable, gpa, NULL, &shift); if (ptep && pte_present(*ptep)) { - old = kvmppc_radix_update_pte(kvm, ptep, _PAGE_PRESENT, 0, + old = kvmppc_radix_update_pte(kvm, ptep, ~0UL, 0, gpa, shift); kvmppc_radix_tlbie_page(kvm, gpa, shift); if ((old & _PAGE_DIRTY) && memslot->dirty_bitmap) {