On Tue, 2007-05-15 at 13:37 -0700, David Miller wrote: > From: James Bottomley <James.Bottomley@xxxxxxxxxxxx> > Date: Tue, 15 May 2007 12:57:25 -0400 > > > It might make sense to put it in lib ... however, I don't think many > > architectures have the problems we have ... specifically certain boxes > > can have >1 IOMMU, then you really have to know *which* iommu you're > > programming. > > Sparc64 boxes will have this at some point, but what I'm > going to do is simply fill in the dev_archdata properly at > device scan time. > > Instead of doing a bus walk up the parent every IOMMU request, why not > cache those results in the dev_archdata? That seems to make the most > sense. That is what we do ... except parisc caches the result in platform_data, largely because dev_archdata wasn't around when the scheme was concocted. However, if we find a NULL platform_data we walk up the tree until we find a non-NULL value and use that (IOMMUs are on a disconnected bus topology). > If there is some probing complexity, catch not-setup dev_archdata at > the IOMMU request, and slow path into a resolver of some sort. Yes, that's where we do the walk if the cache is NULL. James - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html