Thanks Chris, I was not aware of these two functions. I have made the following change: if (iommu_found() || xen_initial_domain()) pci_enable_acs(dev); xen_intial_domain() should take care of dom0 case. We just make the rough assumption that P2P upstream forwarding is needed if we are running on top of xen HV - similar to what we are doing for native kernel case. If this is ok, I'm going to re-spin the patch. Separate out xen_initial_domain() modification since it is predicated on Jeremy's xen.h patch. -----Original Message----- From: Chris Wright [mailto:chrisw@xxxxxxxxxxxx] Sent: Tuesday, October 06, 2009 4:42 PM To: Kay, Allen M Cc: linux-kernel@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; jbarnes@xxxxxxxxxxxxxxxx; matthew@xxxxxx; chris@xxxxxxxxxxxx; jeremy@xxxxxxxx Subject: Re: [PATCH ACS v4 1/1] Enabling PCI ACS P2P upstream forwarding * Allen Kay (allen.m.kay@xxxxxxxxx) wrote: > +#ifdef CONFIG_DMAR > +extern int iommu_detected; > +#endif This should not be needed. > + > +#ifdef CONFIG_XEN > +extern int xen_domain_type; > +#endif Nor this (there's already a check for is dom0 called xen_initial_domain(), but unclear it's relevant yet for this patch). > + > + /* Enable ACS P2P upstream forwarding if HW iommu is detected */ > + if (iommu_detected) I think you'd want iommu_found() instead. To avoid, e.g., GART triggering this one. > + pci_enable_acs(dev); > + > +#ifdef CONFIG_XEN > + /* HW iommu is not visible in xen dom0 */ > + if (xen_domain_type) > + pci_enable_acs(dev); could do this (xen_initial_domain()) above, but it's only relevant for dom0 (so not needed yet?), and really seems to like it should be done by hv. thanks, -chris -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html