public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
	Zwane Mwaikambo <zwane@arm.linux.org.uk>,
	"Theodore Ts'o" <tytso@mit.edu>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Dave Jones <davej@redhat.com>,
	Chuck Wolber <chuckw@quantumlinux.com>,
	Chris Wedgwood <reviews@ml.cw.f00f.org>,
	Michael Krufky <mkrufky@linuxtv.org>,
	Chuck Ebbert <cebbert@redhat.com>,
	Domenico Andreoli <cavokz@gmail.com>, Willy Tarreau <w@1wt.eu>,
	Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
	Jake Edge <jake@lwn.net>, Eugene Teo <eteo@redhat.com>,
	torvalds@linux-foundation.org, akpm@linux-foundation.org,
	alan@lxorguk.ukuu.org.uk, Joerg Roedel <joerg.roedel@amd.com>
Subject: [patch 18/21] AMD IOMMU: reset command buffer pointers manually
Date: Mon, 12 Jan 2009 17:27:29 -0800	[thread overview]
Message-ID: <20090113012729.GS4512@kroah.com> (raw)
In-Reply-To: <20090113012633.GA4512@kroah.com>

[-- Attachment #1: amd-iommu-reset-command-buffer-pointers-manually.patch --]
[-- Type: text/plain, Size: 1271 bytes --]

2.6.27-stable review patch.  If anyone has any objections, please let us know.

------------------

From: Joerg Roedel <joerg.roedel@amd.com>

Upstream commit cf558d25e5c9f70fa0279c9b7b8b4aed7cae9bd4

Under special circumstances the IOMMU does not reset the head and tail
pointer of its command ringbuffer to zero when the command base is
written. This causes the IOMMU to fetch random memory and executes it as
an command. Since these commands are likely illegal IOMMU stops fetching
further commands including IOTLB flushes. This leads to completion wait
errors at boot and in some cases to data corruption and kernel crashes.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 arch/x86/kernel/amd_iommu_init.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/arch/x86/kernel/amd_iommu_init.c
+++ b/arch/x86/kernel/amd_iommu_init.c
@@ -407,6 +407,10 @@ static u8 * __init alloc_command_buffer(
 	memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET,
 			&entry, sizeof(entry));
 
+	/* set head and tail to zero manually */
+	writel(0x00, iommu->mmio_base + MMIO_CMD_HEAD_OFFSET);
+	writel(0x00, iommu->mmio_base + MMIO_CMD_TAIL_OFFSET);
+
 	iommu_feature_enable(iommu, CONTROL_CMDBUF_EN);
 
 	return cmd_buf;


  parent reply	other threads:[~2009-01-13  1:36 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20090113012006.063755472@mini.kroah.org>
2009-01-13  1:26 ` [patch 00/21] 2.6.27-stable review Greg KH
2009-01-13  1:26   ` [patch 01/21] USB: gadget: fix rndis working at high speed Greg KH
2009-01-13  1:26   ` [patch 02/21] usb-storage: update unusual_devs entry for Nokia 5310 Greg KH
2009-01-13  3:15     ` Alan Stern
2009-01-13  1:26   ` [patch 03/21] USB: storage: unusual_devs.h: Nokia 3109c addition Greg KH
2009-01-13  1:26   ` [patch 04/21] USB: Unusual devs patch for Nokia 3500c Greg KH
2009-01-13  1:26   ` [patch 05/21] powerpc: Fix corruption error in rh_alloc_fixed() Greg KH
2009-01-13  1:27   ` [patch 06/21] iwlagn: downgrade BUG_ON in interrupt Greg KH
2009-01-13  1:27   ` [patch 07/21] async_xor: dma_map destination DMA_BIDIRECTIONAL Greg KH
2009-01-13  1:27   ` [patch 08/21] dmaengine: protect id from concurrent registrations Greg KH
2009-01-13  1:27   ` [patch 09/21] ioat: wait for self-test completion Greg KH
2009-01-13  1:27   ` [patch 10/21] md: Dont read past end of bitmap when reading bitmap Greg KH
2009-01-13  1:27   ` [patch 11/21] ALSA: Fix a Oops bug in omap soc driver Greg KH
2009-01-13  1:27   ` [patch 12/21] SCSI: ibmvstgt: move crq_queue_create to the end of initialization Greg KH
2009-01-13  1:27   ` [patch 13/21] SCSI: aacraid: disable Dell Percraid quirk on Adaptec 2200S and 2120S Greg KH
2009-01-13  1:27   ` [patch 14/21] cciss: fix problem that deleting multiple logical drives could cause a panic Greg KH
2009-01-13  1:27   ` [patch 15/21] ALSA: hda - Add missing terminators in patch_sigmatel.c Greg KH
2009-01-13  1:27   ` [patch 16/21] parisc: disable UP-optimized flush_tlb_mm Greg KH
2009-01-13  1:27   ` [patch 17/21] drivers/net: starfire: Fix napi ->poll() weight handling Greg KH
2009-01-13  1:27   ` Greg KH [this message]
2009-01-13  1:27   ` [patch 19/21] AMD IOMMU: allocate rlookup_table with __GFP_ZERO Greg KH
2009-01-13  1:27   ` [patch 20/21] AMD IOMMU: initialize phys_addr correctly in iommu_page_map Greg KH
2009-01-13  1:27   ` [patch 21/21] AMD IOMMU: fix wrong loop counter in free_pagetables Greg KH

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=20090113012729.GS4512@kroah.com \
    --to=gregkh@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=cavokz@gmail.com \
    --cc=cebbert@redhat.com \
    --cc=chuckw@quantumlinux.com \
    --cc=davej@redhat.com \
    --cc=eteo@redhat.com \
    --cc=jake@lwn.net \
    --cc=jmforbes@linuxtx.org \
    --cc=joerg.roedel@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkrufky@linuxtv.org \
    --cc=rbranco@la.checkpoint.com \
    --cc=rdunlap@xenotime.net \
    --cc=reviews@ml.cw.f00f.org \
    --cc=stable@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=w@1wt.eu \
    --cc=zwane@arm.linux.org.uk \
    /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