From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 18A51C433E7 for ; Fri, 9 Oct 2020 06:37:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id ADC6A2065D for ; Fri, 9 Oct 2020 06:37:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="G+CP1sIA"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="vz4ghSJp" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731021AbgJIGhK (ORCPT ); Fri, 9 Oct 2020 02:37:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732030AbgJIGfj (ORCPT ); Fri, 9 Oct 2020 02:35:39 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8CE8C0613D4; Thu, 8 Oct 2020 23:35:38 -0700 (PDT) Date: Fri, 09 Oct 2020 06:35:36 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1602225337; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oUDb2HwG8cuVizWUDjf89gYYGCboHOSex7ly9vGcN4A=; b=G+CP1sIAMbOQ0ASZ6pNjOh+NoDmz1xAT621kduUcAB0Fv4o+qHpwAAxR7jSExU5ofA7xrK sAmZHnI/Ui6HG07SL+3PHMy1wdbdiUDbN0v7h5Xc2E0f0q/eg6+/zHWhB8XKqY0F50tQh3 CN5NMyF1XlclE7Ek/w2s4aEJDOTuECEl9vIqfw+CsrVYZVAJP9V8Nw0OaZHGnpzF/pj8mq Y51kPyAdmY2+jaOMXXUmY5Xrn95jGHRhEn3YXkAzl7cM1KFKwsAcyCWee0yku/RnQY/bac BDKNERaJb4itqKg0cerkoPmboArP+Tp826Rg/8CD0l7/AxFT7RLxiAUNYPxjhQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1602225337; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oUDb2HwG8cuVizWUDjf89gYYGCboHOSex7ly9vGcN4A=; b=vz4ghSJps1vPvwlbaKzJQbJfeX7f7C20CAyLQ5qtnS6tasXBM4uQNigvjU2n7nz7nAyrcX 9lUfLNOmsuDqfxDw== From: "tip-bot2 for Madhuparna Bhowmik" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: core/rcu] kvm: mmu: page_track: Fix RCU list API usage Cc: Madhuparna Bhowmik , "Paul E. McKenney" , Paolo Bonzini , , x86 , LKML MIME-Version: 1.0 Message-ID: <160222533671.7002.15652338637485531444.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org The following commit has been merged into the core/rcu branch of tip: Commit-ID: df9a30fd1f70a757df193acd7396622eee23e527 Gitweb: https://git.kernel.org/tip/df9a30fd1f70a757df193acd7396622eee23e527 Author: Madhuparna Bhowmik AuthorDate: Sun, 12 Jul 2020 18:40:03 +05:30 Committer: Paul E. McKenney CommitterDate: Mon, 24 Aug 2020 18:36:23 -07:00 kvm: mmu: page_track: Fix RCU list API usage Use hlist_for_each_entry_srcu() instead of hlist_for_each_entry_rcu() as it also checkes if the right lock is held. Using hlist_for_each_entry_rcu() with a condition argument will not report the cases where a SRCU protected list is traversed using rcu_read_lock(). Hence, use hlist_for_each_entry_srcu(). Signed-off-by: Madhuparna Bhowmik Signed-off-by: Paul E. McKenney Acked-by: Paolo Bonzini Cc: --- arch/x86/kvm/mmu/page_track.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/mmu/page_track.c b/arch/x86/kvm/mmu/page_track.c index a84a141..8443a67 100644 --- a/arch/x86/kvm/mmu/page_track.c +++ b/arch/x86/kvm/mmu/page_track.c @@ -229,7 +229,8 @@ void kvm_page_track_write(struct kvm_vcpu *vcpu, gpa_t gpa, const u8 *new, return; idx = srcu_read_lock(&head->track_srcu); - hlist_for_each_entry_rcu(n, &head->track_notifier_list, node) + hlist_for_each_entry_srcu(n, &head->track_notifier_list, node, + srcu_read_lock_held(&head->track_srcu)) if (n->track_write) n->track_write(vcpu, gpa, new, bytes, n); srcu_read_unlock(&head->track_srcu, idx); @@ -254,7 +255,8 @@ void kvm_page_track_flush_slot(struct kvm *kvm, struct kvm_memory_slot *slot) return; idx = srcu_read_lock(&head->track_srcu); - hlist_for_each_entry_rcu(n, &head->track_notifier_list, node) + hlist_for_each_entry_srcu(n, &head->track_notifier_list, node, + srcu_read_lock_held(&head->track_srcu)) if (n->track_flush_slot) n->track_flush_slot(kvm, slot, n); srcu_read_unlock(&head->track_srcu, idx);