Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp1054008pxb; Wed, 3 Nov 2021 17:30:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzbclGDyMFRKI8hUWVI5nBEL1HHTSMyhfS0N6+nasKhLoo3MzTi8PVI5Qnt8NlkSsBvRSTk X-Received: by 2002:a05:6e02:be8:: with SMTP id d8mr32850610ilu.44.1635985823032; Wed, 03 Nov 2021 17:30:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635985823; cv=none; d=google.com; s=arc-20160816; b=pRCXuGKW82LkIQt6uWNVFWLHQAmwLhrUYU+K1il7FKG3bBxKTRhQXc19bt4IagKIP1 rpuVrT0MnGIJLd7F6R8YTkeB/BLf6QCaEa8PaWieBhZ249IoHPVBCFxpfqSWOlmfZgWN REHWJE8l8wuUiHCDuYPCXAiG6KUqcJEet3FGslNc8Ij7tAriWSvNJBbp7RP/e4pMGAZY uW5aV67QtzLJVELBNUr8XigKM0BU6QMaigFIC/sk6V+EFSbybpovFOT/yaIY1yek+zlq zmjy03/UHowiOMA1l58fmBPu4zjjf962wVKy+fS5qXzpPmiUKthTbsvrAM4rWUviMHV+ ltrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:reply-to:dkim-signature; bh=Rh/p9dCBzSE6gfhoLM6qA42nAbGkMHfvz+ihOHus8Bw=; b=KxogeGjncCzB6OG2Mlnl1UfI0MKc/i81Fr81v6ITtHdDhLEB0pCEjrztO3uqWijZWi mVE0rquH+RB9KDyBFmxT2LC7xDmciKqyzTmkrmI90VFdVXO84gmsH7aC+8+B4HtvN1Bs kRSc2HawSZJGf7RbIvgDel/Ao60ZxIV09ZGo3w2itkVF9PQvxnlgcw/e3Y7oniRwoWhX FA/6GyUNhE8tt4izXmQKJaAZ16NFJEpwp9O2Jz+BMzLZeN9nKjg2kIDNyWRTczIoJv5g b02JSxUqhUEdO/UQ+pyeticAYk7NHcClcSUZt0/ON0Jc3mzYr+1BQmYRW9PkZYFGYP6o 1sVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=a0LysDSi; 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 t5si7396387jaj.131.2021.11.03.17.30.10; Wed, 03 Nov 2021 17:30:23 -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=20210112 header.b=a0LysDSi; 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 S233141AbhKDAbS (ORCPT + 99 others); Wed, 3 Nov 2021 20:31:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52698 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233321AbhKDA3D (ORCPT ); Wed, 3 Nov 2021 20:29:03 -0400 Received: from mail-pl1-x64a.google.com (mail-pl1-x64a.google.com [IPv6:2607:f8b0:4864:20::64a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7085FC06127A for ; Wed, 3 Nov 2021 17:26:26 -0700 (PDT) Received: by mail-pl1-x64a.google.com with SMTP id m17-20020a170902db1100b001421cb34857so1661588plx.15 for ; Wed, 03 Nov 2021 17:26:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=reply-to:date:in-reply-to:message-id:mime-version:references :subject:from:to:cc; bh=Rh/p9dCBzSE6gfhoLM6qA42nAbGkMHfvz+ihOHus8Bw=; b=a0LysDSixF+SvGFoYJAn+9lReuNdeuojzCYwE/5S80HnosejUJ/GB5lSTi0I0B6etw PCesr77PK5UoG4qbBnDDmbOplfKjJvN0RSVwwsJ9A6TMfI9nydou7MxD9T7lOeaglEHG XNiJ9e6EtswDVfj8NbPNGs3K4UVClUfWt61l+WfszqPbkc9k/eRztWPGJiIa05+786xW gJ3qi2D5CO9qdvRG06/gp2Sn2Z2tyJIgyiWYmMzoSHEsDwT7XcmXrmm49tOMjj1utuxC 5Wr/o1J29XTmPql9v7HTGvlM7g8HATHgYxp+e4CAJr75tfOZ82uzZSP74HenxJ6CsJu8 wJFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:reply-to:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=Rh/p9dCBzSE6gfhoLM6qA42nAbGkMHfvz+ihOHus8Bw=; b=AcXdx3PnO7LRK58NX1hn8MT3sk1cqA5DW7KKXHCjtuNVGOrbdBbMfPeYKQB5UxeAu1 W3D8VsSyIySf5WxbdgnvM1FAoFzNdG7XE7AbRTia4IU5bHiopCOT7E8Jul6ygjR5q8wF GCltJNS9GyIXSMJN8A5oJpDENjudwgm4rOXDGE+f8S16N/KFHGndbNFksgk88FYW580E APBJ1kocksYf/QVwNONvh5pXDDNSbCAmdX2Gnor3UuDRhBygOtPDDGsAO4rHOOKHdScJ tGE9ZYn1AW8ZsvdIfXcyYEd1RYWbzGLZ2lBa2Y9fPkHxqICwP5Nd9aRgqh61pXPVJFi7 W5Vw== X-Gm-Message-State: AOAM532C2OC6iN+46CMu9M8wbGApu1BD6kCLoJRx+X0bnMSTQ6L5PpE1 blSvWNaUSFcz0MiLRkKLl9TKQ7LQpQU= X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5]) (user=seanjc job=sendgmr) by 2002:a17:902:e8d1:b0:141:de15:f596 with SMTP id v17-20020a170902e8d100b00141de15f596mr25033911plg.67.1635985585858; Wed, 03 Nov 2021 17:26:25 -0700 (PDT) Reply-To: Sean Christopherson Date: Thu, 4 Nov 2021 00:25:17 +0000 In-Reply-To: <20211104002531.1176691-1-seanjc@google.com> Message-Id: <20211104002531.1176691-17-seanjc@google.com> Mime-Version: 1.0 References: <20211104002531.1176691-1-seanjc@google.com> X-Mailer: git-send-email 2.33.1.1089.g2158813163f-goog Subject: [PATCH v5.5 16/30] KVM: x86: Don't assume old/new memslots are non-NULL at memslot commit From: Sean Christopherson To: Marc Zyngier , Huacai Chen , Aleksandar Markovic , Paul Mackerras , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Christian Borntraeger , Janosch Frank , Paolo Bonzini Cc: James Morse , Alexandru Elisei , Suzuki K Poulose , Atish Patra , David Hildenbrand , Cornelia Huck , Claudio Imbrenda , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, linux-mips@vger.kernel.org, kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Ben Gardon , "Maciej S . Szmigiero" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Play nice with a NULL @old or @new when handling memslot updates so that common KVM can pass NULL for one or the other in CREATE and DELETE cases instead of having to synthesize a dummy memslot. No functional change intended. Signed-off-by: Sean Christopherson --- arch/x86/kvm/x86.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 80e726f73dd7..80183f7eadeb 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -11762,13 +11762,15 @@ static void kvm_mmu_slot_apply_flags(struct kvm *kvm, const struct kvm_memory_slot *new, enum kvm_mr_change change) { - bool log_dirty_pages = new->flags & KVM_MEM_LOG_DIRTY_PAGES; + u32 old_flags = old ? old->flags : 0; + u32 new_flags = new ? new->flags : 0; + bool log_dirty_pages = new_flags & KVM_MEM_LOG_DIRTY_PAGES; /* * Update CPU dirty logging if dirty logging is being toggled. This * applies to all operations. */ - if ((old->flags ^ new->flags) & KVM_MEM_LOG_DIRTY_PAGES) + if ((old_flags ^ new_flags) & KVM_MEM_LOG_DIRTY_PAGES) kvm_mmu_update_cpu_dirty_logging(kvm, log_dirty_pages); /* @@ -11786,7 +11788,7 @@ static void kvm_mmu_slot_apply_flags(struct kvm *kvm, * MOVE/DELETE: The old mappings will already have been cleaned up by * kvm_arch_flush_shadow_memslot(). */ - if ((change != KVM_MR_FLAGS_ONLY) || (new->flags & KVM_MEM_READONLY)) + if ((change != KVM_MR_FLAGS_ONLY) || (new_flags & KVM_MEM_READONLY)) return; /* @@ -11794,7 +11796,7 @@ static void kvm_mmu_slot_apply_flags(struct kvm *kvm, * other flag is LOG_DIRTY_PAGES, i.e. something is wrong if dirty * logging isn't being toggled on or off. */ - if (WARN_ON_ONCE(!((old->flags ^ new->flags) & KVM_MEM_LOG_DIRTY_PAGES))) + if (WARN_ON_ONCE(!((old_flags ^ new_flags) & KVM_MEM_LOG_DIRTY_PAGES))) return; if (!log_dirty_pages) { -- 2.33.1.1089.g2158813163f-goog