linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Qian Cai <cai@lca.pw>, Lu Baolu <baolu.lu@linux.intel.com>,
	Joerg Roedel <jroedel@suse.de>, Sasha Levin <sashal@kernel.org>,
	iommu@lists.linux-foundation.org
Subject: [PATCH AUTOSEL 4.9 16/23] iommu/vt-d: Silence RCU-list debugging warning in dmar_find_atsr()
Date: Sat, 18 Apr 2020 10:43:58 -0400	[thread overview]
Message-ID: <20200418144405.10565-16-sashal@kernel.org> (raw)
In-Reply-To: <20200418144405.10565-1-sashal@kernel.org>

From: Qian Cai <cai@lca.pw>

[ Upstream commit c6f4ebdeba4cff590594df931ff1ee610c426431 ]

dmar_find_atsr() calls list_for_each_entry_rcu() outside of an RCU read
side critical section but with dmar_global_lock held. Silence this
false positive.

 drivers/iommu/intel-iommu.c:4504 RCU-list traversed in non-reader section!!
 1 lock held by swapper/0/1:
 #0: ffffffff9755bee8 (dmar_global_lock){+.+.}, at: intel_iommu_init+0x1a6/0xe19

 Call Trace:
  dump_stack+0xa4/0xfe
  lockdep_rcu_suspicious+0xeb/0xf5
  dmar_find_atsr+0x1ab/0x1c0
  dmar_parse_one_atsr+0x64/0x220
  dmar_walk_remapping_entries+0x130/0x380
  dmar_table_init+0x166/0x243
  intel_iommu_init+0x1ab/0xe19
  pci_iommu_init+0x1a/0x44
  do_one_initcall+0xae/0x4d0
  kernel_init_freeable+0x412/0x4c5
  kernel_init+0x19/0x193

Signed-off-by: Qian Cai <cai@lca.pw>
Acked-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/iommu/intel-iommu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 593a4bfcba428..31691d853a3cd 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -4300,7 +4300,8 @@ static struct dmar_atsr_unit *dmar_find_atsr(struct acpi_dmar_atsr *atsr)
 	struct dmar_atsr_unit *atsru;
 	struct acpi_dmar_atsr *tmp;
 
-	list_for_each_entry_rcu(atsru, &dmar_atsr_units, list) {
+	list_for_each_entry_rcu(atsru, &dmar_atsr_units, list,
+				dmar_rcu_check()) {
 		tmp = (struct acpi_dmar_atsr *)atsru->hdr;
 		if (atsr->segment != tmp->segment)
 			continue;
-- 
2.20.1


  parent reply	other threads:[~2020-04-18 14:44 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-18 14:43 [PATCH AUTOSEL 4.9 01/23] iommu/amd: Fix the configuration of GCR3 table root pointer Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 02/23] watchdog: reset last_hw_keepalive time at start Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 03/23] scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 04/23] ceph: return ceph_mdsc_do_request() errors from __get_parent() Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 05/23] ceph: don't skip updating wanted caps when cap is stale Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 06/23] pwm: rcar: Fix late Runtime PM enablement Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 07/23] ASoC: dpcm: allow start or stop during pause for backend Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 08/23] scsi: iscsi: Report unbind session event when the target has been removed Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 09/23] ASoC: Intel: atom: Take the drv->lock mutex before calling sst_send_slot_map() Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 10/23] kernel/gcov/fs.c: gcov_seq_next() should increase position index Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 11/23] ipc/util.c: sysvipc_find_ipc() " Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 12/23] KVM: s390: vsie: Fix possible race when shadowing region 3 tables Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 13/23] s390/cio: avoid duplicated 'ADD' uevents Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 14/23] pwm: renesas-tpu: Fix late Runtime PM enablement Sasha Levin
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 15/23] pwm: bcm2835: Dynamically allocate base Sasha Levin
2020-04-18 14:43 ` Sasha Levin [this message]
2020-04-18 14:43 ` [PATCH AUTOSEL 4.9 17/23] libnvdimm: Out of bounds read in __nd_ioctl() Sasha Levin
2020-04-18 14:44 ` [PATCH AUTOSEL 4.9 18/23] ocfs2: no need try to truncate file beyond i_size Sasha Levin
2020-04-18 14:44 ` [PATCH AUTOSEL 4.9 19/23] hfsplus: fix crash and filesystem corruption when deleting files Sasha Levin
2020-04-18 14:44 ` [PATCH AUTOSEL 4.9 20/23] libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set Sasha Levin
2020-04-18 14:44 ` [PATCH AUTOSEL 4.9 21/23] ALSA: ice1724: Fix invalid access for enumerated ctl items Sasha Levin
2020-04-18 14:44 ` [PATCH AUTOSEL 4.9 22/23] ALSA: hda: Fix potential access overflow in beep helper Sasha Levin
2020-04-18 14:44 ` [PATCH AUTOSEL 4.9 23/23] KVM: s390: vsie: Fix delivery of addressing exceptions Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200418144405.10565-16-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=baolu.lu@linux.intel.com \
    --cc=cai@lca.pw \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jroedel@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).