Messages in this thread | | | Date | Fri, 09 Jul 2010 11:43:51 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [tip:x86/mm] x86, pae: Fix handling of large physical addresses in ioremap |
| |
On 07/09/2010 11:31 AM, tip-bot for Kenji Kaneshige wrote: > Commit-ID: 39d8c3ff39443825b6a21b28249fc4904809203f > Gitweb: http://git.kernel.org/tip/39d8c3ff39443825b6a21b28249fc4904809203f > Author: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> > AuthorDate: Thu, 17 Jun 2010 10:30:06 +0900 > Committer: H. Peter Anvin <hpa@linux.intel.com> > CommitDate: Fri, 9 Jul 2010 10:51:39 -0700 > > x86, pae: Fix handling of large physical addresses in ioremap > > Current x86 ioremap() doesn't handle physical address higher than > 32-bit properly in X86_32 PAE mode. When physical address higher than > 32-bit is passed to ioremap(), higher 32-bits in physical address is > cleared wrongly. Due to this bug, ioremap() can map wrong address to > linear address space. > > In my case, 64-bit MMIO region was assigned to a PCI device (ioat > device) on my system. Because of the ioremap()'s bug, wrong physical > address (instead of MMIO region) was mapped to linear address space. > Because of this, loading ioatdma driver caused unexpected behavior > (kernel panic, kernel hangup, ...). >
Sorry, pushed the wrong version of this patch. I will push the correct one shortly.
-hpa
| |