[PATCH v3 02/11] iommu/arm-smmu: Introduce iommu_group notifier block
Will Deacon
will.deacon at arm.com
Wed Jan 22 07:25:50 EST 2014
Hi Varun, Andreas,
On Tue, Jan 21, 2014 at 05:48:02PM +0000, Varun Sethi wrote:
> > +static int arm_smmu_group_notifier(struct notifier_block *nb,
> > + unsigned long action, void *data)
> > +{
> > + struct device *dev = data;
> > + struct dma_iommu_mapping *mapping;
> > + struct arm_smmu_device *smmu;
> > + int ret;
> > +
> > + switch (action) {
> > + case IOMMU_GROUP_NOTIFY_BIND_DRIVER:
> > +
> > + smmu = dev->archdata.iommu;
> > + if (!smmu || !(smmu->options & ARM_SMMU_OPT_ISOLATE_DEVICES))
> > + break;
> [Sethi Varun-B16395] Should this check be really done here? The "Isolate
> devices" property would allow us to set up iommu groups. My understanding
> is that if we specify the isolate devices property, then each device would
> have a separate iommu group otherwise all devices connected to the SMMU
> would share the iommu group.
That's not what currently happens (at least, in the patch I have queued for
groups). The code queued adds each device to its own group in
arm_smmu_add_device, which I think is the right thing to do.
> With that logic, we should link the mapping to the iommu group.
Ok, so are you suggesting that we perform the isolation mapping in
arm_smmu_add_device and drop the notifier altogether?
Will
More information about the linux-arm-kernel
mailing list