From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Burns Subject: Re: MMIO ioremap() error with PCI passthrough Date: Tue, 01 Jul 2008 16:44:01 +0100 Message-ID: <486A50C1.7060000@adslpipe.co.uk> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 01/07/2008 14:31, Keir Fraser wrote: > Well, your analysis is correct, and the size argument to __ioremap() is > bogus. It shouldn't have been rounded up to 4096 without also rounding down > the base address. Just been having a look and a think, the size isn't being rounded up anywhere, the size is actually passed in as 4K from the driver dev->lmmio = ioremap(pci_resource_start(pci_dev,0), 0x1000); Perhaps the rounding up to 8K is happening because the address isn't aligned on a page boundary, so is split over two pages? So I assume it is the driver at fault for mapping a larger resource area than the card actually supports? I'll try changing the size argument to 0x400 and rebuilding the saa7134 module. > So, could be a bug specific to the FC8 kernel. Actually centos5.2 is the domU, FC8 is the dom0, since it's x86_64, I assume it's the Fedora/Redhat forward-port effort, rather than the paravirt_ops effort.