On Fri, Jul 08, 2016 at 03:55:21PM +0100, Will Deacon wrote: > On Fri, Jul 01, 2016 at 05:50:10PM +0100, Robin Murphy wrote: > > From: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> > > > > Current bus notifier in ARM64 (__iommu_attach_notifier) > > attempts to attach dma_ops to a device on BUS_NOTIFY_ADD_DEVICE > > action notification. > > > > This will cause issues on ACPI based systems, where PCI devices > > can be added before the IOMMUs the devices are attached to > > had a chance to be probed, causing failures on attempts to > > attach dma_ops in that the domain for the respective IOMMU > > may not be set-up yet by the time the bus notifier is run. > > > > Devices dma_ops do not require to be set-up till the matching > > device drivers are probed. This means that instead of running > > the notifier attaching dma_ops to devices (__iommu_attach_notifier) > > on BUS_NOTIFY_ADD_DEVICE action, it can be run just before the > > device driver is bound to the device in question (on action > > BUS_NOTIFY_BIND_DRIVER) so that it is certain that its IOMMU > > group and domain are set-up accordingly at the time the > > notifier is triggered. > > > > This patch changes the notifier action upon which dma_ops > > are attached to devices and defer it to driver binding time, > > so that IOMMU devices have a chance to be probed and to register > > their bus notifiers before the dma_ops attach sequence for a > > device is actually carried out. > > > > As a result we also no longer need worry about racing with > > iommu_bus_notifier(), or about retrying the queue in case devices > > were added too early on DT-based systems, so clean up the notifier > > itself plus the additional workaround from 722ec35f7fae ("arm64: > > dma-mapping: fix handling of devices registered before arch_initcall") > > > > Cc: Will Deacon <will.deacon@xxxxxxx> > > Cc: Catalin Marinas <catalin.marinas@xxxxxxx> > > Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> > > [rm: get rid of other now-redundant bits] > > Signed-off-by: Robin Murphy <robin.murphy@xxxxxxx> > > --- > > > > v4: No change. > > > > arch/arm64/mm/dma-mapping.c | 22 +++++----------------- > > 1 file changed, 5 insertions(+), 17 deletions(-) > > Whilst this series is unlikely to make it for 4.8, this patch is > independent and it would be good to see it queued in the arm64 tree for > 4.8, if possible. It shouldn't change anything on its own, but it's a > prerequisite for this series and anything on the IORT side from Lorenzo, > so it makes sense to me to keep the delta down if we can. I queued it for 4.8. Thanks. -- Catalin -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html