On Tue, Jan 05, 2016 at 05:07:24AM -0500, Wan Zongshun wrote: > +static struct iommu_group *amd_iommu_device_group(struct device *dev) > +{ > + if (dev_is_pci(dev)) > + return pci_device_group(dev); > + > + return acpihid_device_group(dev); > +} > + > > /***************************************************************************** > * > * The next functions belong to the dma_ops mapping/unmapping code. > @@ -3202,7 +3233,7 @@ static const struct iommu_ops amd_iommu_ops = { > .iova_to_phys = amd_iommu_iova_to_phys, > .add_device = amd_iommu_add_device, > .remove_device = amd_iommu_remove_device, > - .device_group = pci_device_group, > + .device_group = amd_iommu_device_group,
Does this work? Which bus do the ACPIHID devices belong to (what does dev->bus point to)? If it is not &pci_bus_type, then the iommu core code will not create an iommu group for the devices. Joerg -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/