linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Suspend broken on Thinkpad x201s since 4.7-rc1
@ 2016-06-02 10:24 Jan Niehusmann
  2016-06-03 14:52 ` [PATCH] iommu/vt-d: fix overflow of iommu->domains array Jan Niehusmann
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Niehusmann @ 2016-06-02 10:24 UTC (permalink / raw)
  To: Omer Peleg
  Cc: linux-kernel, Adam Morrison, Shaohua Li, Ben Serebrin, David Woodhouse

Hi,

when trying out 4.7-rc1 on my Thinkpad x201s, I noticed that suspending
the system doesn't work any more. Instead, when trying to suspend,
the system hangs with a black screen and the suspend-LED blinking.

I bisected the issue to commit 22e2f9fa63b092923873fc8a52955151f4d83274,
and indeed, reverting this commit from 4.7-rc1 fixes the issue.

As the system just hangs on suspend, I don't have any error message to
quote. But if there is something I could try to get some diagnostics,
please let me know.

Jan

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH] iommu/vt-d: fix overflow of iommu->domains array
  2016-06-02 10:24 Suspend broken on Thinkpad x201s since 4.7-rc1 Jan Niehusmann
@ 2016-06-03 14:52 ` Jan Niehusmann
  0 siblings, 0 replies; 2+ messages in thread
From: Jan Niehusmann @ 2016-06-03 14:52 UTC (permalink / raw)
  To: linux-kernel, Adam Morrison
  Cc: Omer Peleg, Shaohua Li, Ben Serebrin, David Woodhouse

The valid range of did in get_iommu_domain(*iommu, did)
is 0..cap_ndoms(iommu->cap), so don't exceed that
range in free_all_cpu_cached_iovas().

Signed-off-by: Jan Niehusmann <jan@gondor.com>
---
 drivers/iommu/intel-iommu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index a644d0c..82989d4 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -4600,7 +4600,7 @@ static void free_all_cpu_cached_iovas(unsigned int cpu)
 		if (!iommu)
 			continue;
 
-		for (did = 0; did < 0xffff; did++) {
+		for (did = 0; did < cap_ndoms(iommu->cap); did++) {
 			domain = get_iommu_domain(iommu, did);
 
 			if (!domain)
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-06-03 14:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-02 10:24 Suspend broken on Thinkpad x201s since 4.7-rc1 Jan Niehusmann
2016-06-03 14:52 ` [PATCH] iommu/vt-d: fix overflow of iommu->domains array Jan Niehusmann

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).