From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:40960) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qz9s9-0008UL-9i for qemu-devel@nongnu.org; Thu, 01 Sep 2011 12:12:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qz9s8-0005mV-7F for qemu-devel@nongnu.org; Thu, 01 Sep 2011 12:12:09 -0400 Received: from mx1.redhat.com ([209.132.183.28]:26463) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qz9s7-0005mH-Sk for qemu-devel@nongnu.org; Thu, 01 Sep 2011 12:12:08 -0400 Message-ID: <4E5FAEC7.1080901@redhat.com> Date: Thu, 01 Sep 2011 19:11:51 +0300 From: Avi Kivity MIME-Version: 1.0 References: <1314853263-2086-1-git-send-email-david@gibson.dropbear.id.au> <1314853263-2086-2-git-send-email-david@gibson.dropbear.id.au> <4E5FAADF.1040704@us.ibm.com> <4E5FACD6.9000603@redhat.com> <4E5FAD5C.4090208@codemonkey.ws> In-Reply-To: <4E5FAD5C.4090208@codemonkey.ws> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 01/10] Add stub functions for PCI device models to do PCI DMA List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Anthony Liguori , joerg.roedel@amd.com, agraf@suse.de, qemu-devel@nongnu.org, eduard.munteanu@linux360.ro, rth@twiddle.net, David Gibson On 09/01/2011 07:05 PM, Anthony Liguori wrote: >> I think the patchset is fine. It routes all access through pci_dma_rw(), >> which accepts a PCIDevice. We can later define pci_dma_rw() in terms of >> the memory API and get the benefit of the memory hierarchy. > > > The challenge is what you do about something like ne2k where the core > chipset can either be a PCI device or an ISA device. You would have > to implement a wrapper around pci_dma_rw() in order to turn it into > cpu_physical_memory_rw when doing ISA. > True. But I still think it's the right thing. We can't really pass a MemoryRegion as the source address, since there is no per-device MemoryRegion. We can use pci_address_space() for basic offsetting, and for bypassing bridge windows, but iommu source detection has to use the PCIDevice directly. -- error compiling committee.c: too many arguments to function