All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Lu Baolu <baolu.lu@linux.intel.com>,
	Jacob Pan <jacob.jun.pan@linux.intel.com>,
	mark gross <mgross@intel.com>, Joerg Roedel <jroedel@suse.de>,
	Sasha Levin <sashal@kernel.org>,
	iommu@lists.linux-foundation.org
Subject: [PATCH AUTOSEL 4.4 18/21] iommu/vt-d: Check capability before disabling protected memory
Date: Fri, 29 Mar 2019 20:56:46 -0400	[thread overview]
Message-ID: <20190330005649.28475-18-sashal@kernel.org> (raw)
In-Reply-To: <20190330005649.28475-1-sashal@kernel.org>

From: Lu Baolu <baolu.lu@linux.intel.com>

[ Upstream commit 5bb71fc790a88d063507dc5d445ab8b14e845591 ]

The spec states in 10.4.16 that the Protected Memory Enable
Register should be treated as read-only for implementations
not supporting protected memory regions (PLMR and PHMR fields
reported as Clear in the Capability register).

Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
Cc: mark gross <mgross@intel.com>
Suggested-by: Ashok Raj <ashok.raj@intel.com>
Fixes: f8bab73515ca5 ("intel-iommu: PMEN support")
Signed-off-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, 3 insertions(+)

diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 8b4a4d95669a..3e97c4b2ebed 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -1598,6 +1598,9 @@ static void iommu_disable_protect_mem_regions(struct intel_iommu *iommu)
 	u32 pmen;
 	unsigned long flags;
 
+	if (!cap_plmr(iommu->cap) && !cap_phmr(iommu->cap))
+		return;
+
 	raw_spin_lock_irqsave(&iommu->register_lock, flags);
 	pmen = readl(iommu->reg + DMAR_PMEN_REG);
 	pmen &= ~DMA_PMEN_EPM;
-- 
2.19.1

  parent reply	other threads:[~2019-03-30  0:56 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-30  0:56 [PATCH AUTOSEL 4.4 01/21] perf/core: Restore mmap record type correctly Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 02/21] ext4: add missing brelse() in add_new_gdb_meta_bg() Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 03/21] ext4: report real fs size after failed resize Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 04/21] ALSA: echoaudio: add a check for ioremap_nocache Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 05/21] ALSA: sb8: add a check for request_region Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 06/21] IB/mlx4: Fix race condition between catas error reset and aliasguid flows Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 07/21] mmc: davinci: remove extraneous __init annotation Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 08/21] ALSA: opl3: fix mismatch between snd_opl3_drum_switch definition and declaration Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 09/21] thermal/int340x_thermal: Add additional UUIDs Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 10/21] thermal/int340x_thermal: fix mode setting Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 11/21] tools/power turbostat: return the exit status of a command Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 12/21] perf top: Fix error handling in cmd_top() Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 13/21] perf evsel: Free evsel->counts in perf_evsel__exit() Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 14/21] perf tests: Fix a memory leak of cpu_map object in the openat_syscall_event_on_all_cpus test Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 15/21] perf tests: Fix a memory leak in test__perf_evsel__tp_sched_test() Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 16/21] x86/hpet: Prevent potential NULL pointer dereference Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 17/21] x86/cpu/cyrix: Use correct macros for Cyrix calls on Geode processors Sasha Levin
2019-03-30  0:56 ` Sasha Levin [this message]
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 19/21] x86/hw_breakpoints: Make default case in hw_breakpoint_arch_parse() return an error Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 20/21] fix incorrect error code mapping for OBJECTID_NOT_FOUND Sasha Levin
2019-03-30  0:56 ` [PATCH AUTOSEL 4.4 21/21] ext4: prohibit fstrim in norecovery mode 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=20190330005649.28475-18-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=baolu.lu@linux.intel.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jacob.jun.pan@linux.intel.com \
    --cc=jroedel@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgross@intel.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.