Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2087773ybz; Thu, 30 Apr 2020 10:38:39 -0700 (PDT) X-Google-Smtp-Source: APiQypLaviQfJH7yb4gMp0vOXHl353fB2jIGZuemM2xK0SfgsYyr3u1w6HsDFa16idj1FmiWWWkd X-Received: by 2002:a17:907:2168:: with SMTP id rl8mr3688974ejb.360.1588268319815; Thu, 30 Apr 2020 10:38:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588268319; cv=none; d=google.com; s=arc-20160816; b=o/htWNKUi5Ook2rAnqzxvoqB+HpULRoeIL9T+ojHnt2MBYppKn2jcH5i6Z2ostn+a2 Xuajz47Di/eA6m41Reb6KJQh4xx+p8l25Ofi6YAt1KpqFBV6pF5BDkt13bWQtQxSOM2H e7o7nP9bFADDtainZ5qhvjngeVOlzg5UNY51+ua+5zZFJ4qW5MYQ1O+XUy0bgzXdwoCQ YOxIWBbMkTHFd4vQyb01OMVeK3S8UibsCAbZTnlJiH1xj8MljZ2uOauqiMLSEypffOUf vBUipFzpxzJKSLW17Q8jgJ/ZIyyZYpBqBClW7+0STVm4OMePVwhVsAg1X6PHFLY2GBVA pvpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=4K4QcAglqQHIVHuLYS6DjBHUlRjOBcFG0F/ETfmLQWg=; b=zExKnxSYWTyheNLEkPweMIzRk99lb6YXG8YHl8NL9tcqVEtvsFtlLuTQkXpu7I3KTz xj8frRSrpOcr+sGBOcI2cebtqdKmYzT6AmJE0lgmn3Zbeq147EDwvgFYMxB89OYhbwYN szo6bC39uHWcaoSsBiru/Kq1CAEdzHta4+s12nm1kA4aVgjjYA4KbzenLzApvmokKC1i saIJEDqwGuhxxBGsPV1hIh8+RSmP8msmMAGhz4ienr4w19gtZLNkPlXExUNBEwFfRmzV kEVpb9VMPt5IglDs0tZwOCS4K2q9idDpTX3O3RU3yM0GyRxhdpb2lRt+7KKderbEqOaS xCRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=N03tROzm; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s8si178981edr.485.2020.04.30.10.38.15; Thu, 30 Apr 2020 10:38:39 -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=@gmail.com header.s=20161025 header.b=N03tROzm; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726645AbgD3Rgb (ORCPT + 99 others); Thu, 30 Apr 2020 13:36:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33860 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726285AbgD3Rga (ORCPT ); Thu, 30 Apr 2020 13:36:30 -0400 Received: from mail-pl1-x643.google.com (mail-pl1-x643.google.com [IPv6:2607:f8b0:4864:20::643]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 340B5C035494; Thu, 30 Apr 2020 10:36:29 -0700 (PDT) Received: by mail-pl1-x643.google.com with SMTP id f8so2499693plt.2; Thu, 30 Apr 2020 10:36:29 -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; bh=4K4QcAglqQHIVHuLYS6DjBHUlRjOBcFG0F/ETfmLQWg=; b=N03tROzm8pumHw1JUBD7EiC5oQJEswsiNzomuy7OpbRaSiKHk2QTN9f+q7w4sQSQe7 fJy8T967jYwbfdR+88fl9XcFSj/miRIKv7/uFlVCJsQMc404QrlQXITn/JWTETl5Bm71 WPdN9AP1+qU/FbOht0rP/BMs5kRFcMEecvGwmw0fGBsXKz9lSXY2pQD4W3dtCrjJwFog gDu/4TfsuXoHZ6Vs+VkQbDp3l/EyeA0cm0E0zJxNafRJzpLgo+y8JII6oljiWhDrmV+q mnw3EDm2Ziq8feN9f+chh/5S+ks2kqhfoQz7rVNgkvMcMyLv7Z+IhDFrikvWrHI2GrwC 3BOQ== 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; bh=4K4QcAglqQHIVHuLYS6DjBHUlRjOBcFG0F/ETfmLQWg=; b=nwYNYhImWL9iRI/iMMo7H+GyhZPnQBWJnXZqJGa6Za0DriLG45BCokwyuB26iJ2Vvt JS4NKXJoXwKeMyqy9QmYkk05y2jSWmMbO0AOYCr93doRXTRlM6YkmtqgeEPex5wqejRb LFfEQVM2Q4GhBOsjs98ujVbYCse4VAxAUyxqnACSt1Buodzpqe/YX7sFG3HedZlVuGK1 cs6byb/SVZHRXzICPU6B0C5qUSmBwpreycRNU9xPFeBkOn9XqQJRnKCcnLkLu1sT5pB3 fAYrPS7fchRR7GzpUMEniuyJWw7c2WbCtvepcWSOiIl1SEO4msGTX3JzpDzeeSsG+3I5 TZIw== X-Gm-Message-State: AGi0PubduTLD8DsVGFDi1ZJIWpE8USMHKhxjVUqYytlSnQjCX7yTjsPR FfjEBXhFb8tg7R+VZIjW/oXquuM= X-Received: by 2002:a17:902:8643:: with SMTP id y3mr64696plt.149.1588268188682; Thu, 30 Apr 2020 10:36:28 -0700 (PDT) Received: from localhost.localdomain ([2402:3a80:d32:dd79:2591:468a:ee81:9c85]) by smtp.gmail.com with ESMTPSA id l30sm337331pgu.29.2020.04.30.10.36.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2020 10:36:27 -0700 (PDT) From: madhuparnabhowmik10@gmail.com To: pbonzini@redhat.com, cai@lca.pw Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, paulmck@kernel.org, joel@joelfernandes.org, linux-kernel-mentees@lists.linuxfoundation.org, frextrite@gmail.com, Madhuparna Bhowmik Subject: [PATCH] kvm: Fix false-positive RCU list related warnings Date: Thu, 30 Apr 2020 23:06:08 +0530 Message-Id: <20200430173608.14663-1-madhuparnabhowmik10@gmail.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Madhuparna Bhowmik This patch fixes the following warning and other usage of RCU list in eventfd.c [29179.937976][T75781] WARNING: suspicious RCU usage [29179.942789][T75781] 5.7.0-rc3-next-20200429 #1 Tainted: G O L [29179.949752][T75781] ----------------------------- [29179.954498][T75781] arch/x86/kvm/../../../virt/kvm/eventfd.c:472 RCU-list traversed in non-reader section!! Pass srcu_read_lock_held() as cond to list_for_each_entry_rcu(). Reported-by: Qian Cai Signed-off-by: Madhuparna Bhowmik --- virt/kvm/eventfd.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 67b6fc153e9c..a23787693127 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -77,7 +77,8 @@ irqfd_resampler_ack(struct kvm_irq_ack_notifier *kian) idx = srcu_read_lock(&kvm->irq_srcu); - list_for_each_entry_rcu(irqfd, &resampler->list, resampler_link) + list_for_each_entry_rcu(irqfd, &resampler->list, resampler_link, + srcu_read_lock_held(&kvm->irq_srcu)) eventfd_signal(irqfd->resamplefd, 1); srcu_read_unlock(&kvm->irq_srcu, idx); @@ -452,7 +453,7 @@ bool kvm_irq_has_notifier(struct kvm *kvm, unsigned irqchip, unsigned pin) gsi = kvm_irq_map_chip_pin(kvm, irqchip, pin); if (gsi != -1) hlist_for_each_entry_rcu(kian, &kvm->irq_ack_notifier_list, - link) + link, srcu_read_lock_held(&kvm->irq_srcu)) if (kian->gsi == gsi) { srcu_read_unlock(&kvm->irq_srcu, idx); return true; @@ -469,7 +470,7 @@ void kvm_notify_acked_gsi(struct kvm *kvm, int gsi) struct kvm_irq_ack_notifier *kian; hlist_for_each_entry_rcu(kian, &kvm->irq_ack_notifier_list, - link) + link, srcu_read_lock_held(&kvm->irq_srcu)) if (kian->gsi == gsi) kian->irq_acked(kian); } @@ -960,3 +961,4 @@ kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) return kvm_assign_ioeventfd(kvm, args); } + -- 2.17.1