From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:49677) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SV2X0-0004oj-Ae for qemu-devel@nongnu.org; Thu, 17 May 2012 11:22:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SV2Wy-0000ll-Dy for qemu-devel@nongnu.org; Thu, 17 May 2012 11:22:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:23932) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SV2Wy-0000lI-5z for qemu-devel@nongnu.org; Thu, 17 May 2012 11:22:20 -0400 Message-ID: <1337268120.2880.4.camel@ul30vt> From: Alex Williamson Date: Thu, 17 May 2012 09:22:00 -0600 In-Reply-To: References: <20120511222148.30496.68571.stgit@bling.home> <20120511225555.30496.80525.stgit@bling.home> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Mime-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 04/13] pci: New pci_dma_quirk() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anonymous Cc: B07421@freescale.com, kvm@vger.kernel.org, gregkh@linuxfoundation.org, aik@ozlabs.ru, linux-pci@vger.kernel.org, agraf@suse.de, qemu-devel@nongnu.org, chrisw@sous-sol.org, B08248@freescale.com, iommu@lists.linux-foundation.org, avi@redhat.com, joerg.roedel@amd.com, bhelgaas@google.com, benve@cisco.com, dwmw2@infradead.org, linux-kernel@vger.kernel.org, david@gibson.dropbear.id.au On Thu, 2012-05-17 at 15:19 +0800, Anonymous wrote: > Alex, > > On Sat, May 12, 2012 at 6:55 AM, Alex Williamson > wrote: > > Integrating IOMMU groups more closely into the driver core allows > > us to more easily work around DMA quirks. The Ricoh multifunction > > controller is a favorite example of devices that are currently > > incompatible with IOMMU isolation as all the functions use the > > requestor ID of function 0 for DMA. Passing this device into > > pci_dma_quirk returns the PCI device to use for DMA. The IOMMU > > driver can then construct an IOMMU group including both devices. > > > > Please give some thought to the Marvell SATA controller quirk as well. > > Instead of multiple visible functions using the same requester ID of > function 0, the Marvell device only makes function 0 visible, but uses > the requestor ID of function 1 as well during DMA. > > See https://bugzilla.redhat.com/show_bug.cgi?id=757166 Wow. That one isn't quite as easy to deal with since there's no existing device in the kernel to point to. This comment might be on the right track: https://bugzilla.kernel.org/show_bug.cgi?id=42679#c11 Perhaps David Woodhouse can comment on support for phantom functions. If we had infrastructure for that it might be easy for the quirk to update the pci_dev struct, inserting a new phantom function. Otherwise we'd need to create a new device in the kernel for it. Thanks, Alex