Re: [PATCH V10 00/12] IOMMU probe deferral support

2017-04-06 Thread Frank Rowand
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

2017-04-05 Thread Lorenzo Pieralisi
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

2017-04-04 Thread Rob Herring
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

2017-04-04 Thread Robin Murphy
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

2017-04-04 Thread Sricharan R
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