Messages in this thread | | | Date | Wed, 26 Sep 2012 17:10:44 +0200 | From | "Roedel, Joerg" <> | Subject | Re: 3.6-rc7 boot crash + bisection |
| |
On Wed, Sep 26, 2012 at 08:35:59AM -0600, Alex Williamson wrote: > Hmm, that throws a kink in iommu groups. So perhaps we need to make an > alias interface to iommu groups. Seems like this could just be an extra > parameter to iommu_group_get and iommu_group_add_device (empty in the > typical case). Then we have the problem of what's the type for an > alias? For AMI-Vi, it's a u16, but we need to be more generic than > that. Maybe iommu groups should just treat it as a void* so iommus can > use a pointer to some structure or a fixed value like a u16 bus:slot. > Thoughts?
Good question. The iommu-groups are part of the IOMMU-API, with an interface to the IOMMU drivers and one to the users of IOMMU-API. So the alias handling itself should be a function of the interface to the IOMMU driver. In general the interface should not be bus specific.
So a void pointer seems the only logical choice then. But I would not limit its scope to alias handling. How about making it a bus-private pointer where IOMMU driver store bus-specific information. That way we make sure that there is one struct per bus-type for this pointer, and not one structure per IOMMU driver.
Joerg
-- AMD Operating System Research Center
Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach General Managers: Alberto Bozzo Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632
| |