Re: [PATCH V10 00/12] IOMMU probe deferral support
On 04/04/17 18:23, Rob Herring wrote: > On Tue, Apr 4, 2017 at 5:18 AM, Sricharan R wrote: >> This series calls the dma ops configuration for the devices >> at a generic place so that it works for all busses. >> The dma_configure_ops for a device is now called during >> the device_attach callback just before the probe of the >> bus/driver is called. Similarly dma_deconfigure is called during >> device/driver_detach path. > > For patches 3, 4, 6, 7, 8: > > Acked-by: Rob Herring > . > And a few hours later, I had the opposite opinion on a couple of patches, so there is some ongoing discussion working this out. -Frank ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH V10 00/12] IOMMU probe deferral support
On Tue, Apr 04, 2017 at 01:49:29PM +0100, Robin Murphy wrote: > On 04/04/17 11:18, Sricharan R wrote: > > This series calls the dma ops configuration for the devices > > at a generic place so that it works for all busses. > > The dma_configure_ops for a device is now called during > > the device_attach callback just before the probe of the > > bus/driver is called. Similarly dma_deconfigure is called during > > device/driver_detach path. > > > > pci_bus_add_devices(platform/amba)(_device_create/driver_register) > >| | > > pci_bus_add_device (device_add/driver_register) > >| | > > device_attach device_initial_probe > >| | > > __device_attach_driver__device_attach_driver > >| > > driver_probe_device > >| > > really_probe > >| > > dma_configure > > > > Similarly on the device/driver_unregister path __device_release_driver is > > called which inturn calls dma_deconfigure. > > > > Rebased the series against mainline 4.11-rc5. Applies and builds cleanly > > against mainline and linux-next, iommu-next. > > > > * Tested with platform and pci devices for probe deferral > > and reprobe on arm64 based platform. > > Sricharan, thanks for keeping this going - I really think we're there now :) FYI, I re-tested this series with ACPI and tried a merge with IORT patches queued for 4.12 (via arm64) and there does not seem to be any merge conflicts so it should be ready to go. Thanks, Lorenzo > Joerg, I realise that at -rc5 time is getting on a bit already, but even > the non-vintage parts of the series are pretty mature now so it would be > nice to at least give it a spin in -next. If you don't quite share my > confidence for landing it in 4.12, please consider it for early next > cycle to get a full workout. > > Thanks, > Robin. > > > Previous post of this series [8]. > > > > Please note that, i have kept the tested/acked tags intact from V8 > > because V9/10 were for more fixes that was added, so the original > > tags that was given for the functional testing remains the same. > > > > [V10] > > * Rebased on top of 4.11-rc5. > > > > * Fixed coherent_dma_mask 64bit overflow issue [8] > >for OF. The fix for OF was added as a separate > >patch#6, since the issue is true even without probe deferral, > >but gets reproduced with the probe deferral series. > >Added Lorenzo's ACPI fix for coherent_dma_mask overflow > >and the fix for dma_configure getting called more than > >once for the same device. > > > > * Also fixed an build issue caught by kbuild robot for > >m68k arch. The issue was dma_(de)configure was not > >getting defined for !CONFIG_HAS_DMA, so fixed that as well. > > > > [V9] > > * Rebased on top of 4.11-rc1. > > > > * Merged Robin's fixes for legacy binding issue, > >pci devices with no iommu-map property and deferencing > >of_iommu_table after init. > > > > [V8] > > * Picked up all the acks and tested tags from Marek and > >Hanjun for DT and ACPI patches respectively, since > >no functional changes was done. > > > > * Addressed Minor comments Sinan and Bjorn. > > > > * Added Robin's fix for fixing the deferencing NULL for > >of_iommu_table after init in patch #2. > > > > * Rebased it on top of linux-next > > > > [V7] > > * Updated the subject and commit log for patch #6 as per > >comments from Lorenzo. No functional changes. > > > > [V6] > > * Fixed a bug in dma_configure function pointed out by > >Robin. > > * Reordered the patches as per comments from Robin and > >Lorenzo. > > * Added Tags. > > > > [V5] > > * Reworked the pci configuration code hanging outside and > >pushed it to dma_configure as in PATCH#5,6,7. > >Also added a couple of patches that Lorenzo provided for > >correcting the Probe deferring mechanism in case of > >ACPI devices from here [5]. > > > > [V4] > > * Took the reworked patches [2] from Robin's branch and > >rebased on top of Lorenzo's ACPI IORT ARM support series [3]. > > > > * Added the patches for moving the dma ops configuration of > >acpi based devices to probe time as well. > > [V3] > > * Removed the patch to split dma_masks/dma_ops configuration > >separately based on review comments that both masks and ops are > >required only during the device probe time. > > > > * Reworked the series based on Generic DT bindings series. > > > > * Added call to iommu's remove_device in the cleanup path for arm and > >arm64. > > > > * Removed the notifier trick in arm64 to handle early device > >registration. > > > > * Added reset of dma_ops in cleanup path for arm based on comments. > > > > * Fixed t
Re: [PATCH V10 00/12] IOMMU probe deferral support
On Tue, Apr 4, 2017 at 5:18 AM, Sricharan R wrote: > This series calls the dma ops configuration for the devices > at a generic place so that it works for all busses. > The dma_configure_ops for a device is now called during > the device_attach callback just before the probe of the > bus/driver is called. Similarly dma_deconfigure is called during > device/driver_detach path. For patches 3, 4, 6, 7, 8: Acked-by: Rob Herring ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH V10 00/12] IOMMU probe deferral support
On 04/04/17 11:18, Sricharan R wrote: > This series calls the dma ops configuration for the devices > at a generic place so that it works for all busses. > The dma_configure_ops for a device is now called during > the device_attach callback just before the probe of the > bus/driver is called. Similarly dma_deconfigure is called during > device/driver_detach path. > > pci_bus_add_devices(platform/amba)(_device_create/driver_register) >| | > pci_bus_add_device (device_add/driver_register) >| | > device_attach device_initial_probe >| | > __device_attach_driver__device_attach_driver >| > driver_probe_device >| > really_probe >| > dma_configure > > Similarly on the device/driver_unregister path __device_release_driver is > called which inturn calls dma_deconfigure. > > Rebased the series against mainline 4.11-rc5. Applies and builds cleanly > against mainline and linux-next, iommu-next. > > * Tested with platform and pci devices for probe deferral > and reprobe on arm64 based platform. Sricharan, thanks for keeping this going - I really think we're there now :) Joerg, I realise that at -rc5 time is getting on a bit already, but even the non-vintage parts of the series are pretty mature now so it would be nice to at least give it a spin in -next. If you don't quite share my confidence for landing it in 4.12, please consider it for early next cycle to get a full workout. Thanks, Robin. > Previous post of this series [8]. > > Please note that, i have kept the tested/acked tags intact from V8 > because V9/10 were for more fixes that was added, so the original > tags that was given for the functional testing remains the same. > > [V10] > * Rebased on top of 4.11-rc5. > > * Fixed coherent_dma_mask 64bit overflow issue [8] >for OF. The fix for OF was added as a separate >patch#6, since the issue is true even without probe deferral, >but gets reproduced with the probe deferral series. >Added Lorenzo's ACPI fix for coherent_dma_mask overflow >and the fix for dma_configure getting called more than >once for the same device. > > * Also fixed an build issue caught by kbuild robot for >m68k arch. The issue was dma_(de)configure was not >getting defined for !CONFIG_HAS_DMA, so fixed that as well. > > [V9] > * Rebased on top of 4.11-rc1. > > * Merged Robin's fixes for legacy binding issue, >pci devices with no iommu-map property and deferencing >of_iommu_table after init. > > [V8] > * Picked up all the acks and tested tags from Marek and >Hanjun for DT and ACPI patches respectively, since >no functional changes was done. > > * Addressed Minor comments Sinan and Bjorn. > > * Added Robin's fix for fixing the deferencing NULL for >of_iommu_table after init in patch #2. > > * Rebased it on top of linux-next > > [V7] > * Updated the subject and commit log for patch #6 as per >comments from Lorenzo. No functional changes. > > [V6] > * Fixed a bug in dma_configure function pointed out by >Robin. > * Reordered the patches as per comments from Robin and >Lorenzo. > * Added Tags. > > [V5] > * Reworked the pci configuration code hanging outside and >pushed it to dma_configure as in PATCH#5,6,7. >Also added a couple of patches that Lorenzo provided for >correcting the Probe deferring mechanism in case of >ACPI devices from here [5]. > > [V4] > * Took the reworked patches [2] from Robin's branch and >rebased on top of Lorenzo's ACPI IORT ARM support series [3]. > > * Added the patches for moving the dma ops configuration of >acpi based devices to probe time as well. > [V3] > * Removed the patch to split dma_masks/dma_ops configuration >separately based on review comments that both masks and ops are >required only during the device probe time. > > * Reworked the series based on Generic DT bindings series. > > * Added call to iommu's remove_device in the cleanup path for arm and >arm64. > > * Removed the notifier trick in arm64 to handle early device >registration. > > * Added reset of dma_ops in cleanup path for arm based on comments. > > * Fixed the pci_iommu_configure path and tested with PCI device as >well. > > * Fixed a bug to return the correct iommu_ops from patch 7 [4] in >last post. > > * Fixed few other cosmetic comments. > > [V2] > * Updated the Initial post to call dma_configure/deconfigure from >generic code > > * Added iommu add_device callback from of_iommu_configure path > > [V1] > * Initial post from Laurent Pinchart [1] > > [1] http://lists.linuxfoundation.org/pipe
[PATCH V10 00/12] IOMMU probe deferral support
This series calls the dma ops configuration for the devices at a generic place so that it works for all busses. The dma_configure_ops for a device is now called during the device_attach callback just before the probe of the bus/driver is called. Similarly dma_deconfigure is called during device/driver_detach path. pci_bus_add_devices(platform/amba)(_device_create/driver_register) | | pci_bus_add_device (device_add/driver_register) | | device_attach device_initial_probe | | __device_attach_driver__device_attach_driver | driver_probe_device | really_probe | dma_configure Similarly on the device/driver_unregister path __device_release_driver is called which inturn calls dma_deconfigure. Rebased the series against mainline 4.11-rc5. Applies and builds cleanly against mainline and linux-next, iommu-next. * Tested with platform and pci devices for probe deferral and reprobe on arm64 based platform. Previous post of this series [8]. Please note that, i have kept the tested/acked tags intact from V8 because V9/10 were for more fixes that was added, so the original tags that was given for the functional testing remains the same. [V10] * Rebased on top of 4.11-rc5. * Fixed coherent_dma_mask 64bit overflow issue [8] for OF. The fix for OF was added as a separate patch#6, since the issue is true even without probe deferral, but gets reproduced with the probe deferral series. Added Lorenzo's ACPI fix for coherent_dma_mask overflow and the fix for dma_configure getting called more than once for the same device. * Also fixed an build issue caught by kbuild robot for m68k arch. The issue was dma_(de)configure was not getting defined for !CONFIG_HAS_DMA, so fixed that as well. [V9] * Rebased on top of 4.11-rc1. * Merged Robin's fixes for legacy binding issue, pci devices with no iommu-map property and deferencing of_iommu_table after init. [V8] * Picked up all the acks and tested tags from Marek and Hanjun for DT and ACPI patches respectively, since no functional changes was done. * Addressed Minor comments Sinan and Bjorn. * Added Robin's fix for fixing the deferencing NULL for of_iommu_table after init in patch #2. * Rebased it on top of linux-next [V7] * Updated the subject and commit log for patch #6 as per comments from Lorenzo. No functional changes. [V6] * Fixed a bug in dma_configure function pointed out by Robin. * Reordered the patches as per comments from Robin and Lorenzo. * Added Tags. [V5] * Reworked the pci configuration code hanging outside and pushed it to dma_configure as in PATCH#5,6,7. Also added a couple of patches that Lorenzo provided for correcting the Probe deferring mechanism in case of ACPI devices from here [5]. [V4] * Took the reworked patches [2] from Robin's branch and rebased on top of Lorenzo's ACPI IORT ARM support series [3]. * Added the patches for moving the dma ops configuration of acpi based devices to probe time as well. [V3] * Removed the patch to split dma_masks/dma_ops configuration separately based on review comments that both masks and ops are required only during the device probe time. * Reworked the series based on Generic DT bindings series. * Added call to iommu's remove_device in the cleanup path for arm and arm64. * Removed the notifier trick in arm64 to handle early device registration. * Added reset of dma_ops in cleanup path for arm based on comments. * Fixed the pci_iommu_configure path and tested with PCI device as well. * Fixed a bug to return the correct iommu_ops from patch 7 [4] in last post. * Fixed few other cosmetic comments. [V2] * Updated the Initial post to call dma_configure/deconfigure from generic code * Added iommu add_device callback from of_iommu_configure path [V1] * Initial post from Laurent Pinchart [1] [1] http://lists.linuxfoundation.org/pipermail/iommu/2015-May/013016.html [2] http://www.linux-arm.org/git?p=linux-rm.git;a=shortlog;h=refs/heads/iommu/defer [3] https://lkml.org/lkml/2016/11/21/141 [4] https://www.mail-archive.com/iommu@xx/msg13940.html [5] git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git iommu/probe-deferral [6] http://www.spinics.net/lists/linux-pci/msg57992.html [7] https://www.spinics.net/lists/arm-kernel/msg556209.html [8] http://patchwork.ozlabs.org/patch/743898/ Laurent Pinchart (3): of: dma: Move range size workaround to of_dma_get_range() of: dma: Make of_dma_deconfigure() public iommu: of: Handle IOMMU lookup failure with deferred probing or error Lore