From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Subject: Re: [PATCH 1/7] powerpc: Add interface to get msi region information Date: Tue, 8 Oct 2013 18:35:25 -0500 Message-ID: <1381275325.7979.320.camel@snotra.buserror.net> References: <1379575763-2091-1-git-send-email-Bharat.Bhushan@freescale.com> <1379575763-2091-2-git-send-email-Bharat.Bhushan@freescale.com> <1381273037.7979.298.camel@snotra.buserror.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Bjorn Helgaas Cc: Alexander Graf , Benjamin Herrenschmidt , "linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "open list:INTEL IOMMU (VT-d)" , Kumar Gala , Bharat Bhushan , linuxppc-dev List-Id: iommu@lists.linux-foundation.org On Tue, 2013-10-08 at 17:25 -0600, Bjorn Helgaas wrote: > >> - u32 msiir_offset; /* Offset of MSIIR, relative to start of CCSR */ > >> + dma_addr_t msiir; /* MSIIR Address in CCSR */ > > > > Are you sure dma_addr_t is right here, versus phys_addr_t? It implies > > that it's the output of the DMA API, but I don't think the DMA API is > > used in the MSI driver. Perhaps it should be, but we still want the raw > > physical address to pass on to VFIO. > > I don't know what "msiir" is used for, but if it's an address you > program into a PCI device, then it's a dma_addr_t even if you didn't > get it from the DMA API. Maybe "bus_addr_t" would have been a more > suggestive name than "dma_addr_t". That said, I have no idea how this > relates to VFIO. It's a bit awkward because it gets used both as something to program into a PCI device (and it's probably a bug that the DMA API doesn't get used), and also (if I understand the current plans correctly) as a physical address to give to VFIO to be a destination address in an IOMMU mapping. So I think the value we keep here should be a phys_addr_t (it comes straight from the MMIO address in the device tree), which gets trivially turned into a dma_addr_t by the non-VFIO code path because there's currently no translation there. -Scott