From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754735AbdEHLXT (ORCPT ); Mon, 8 May 2017 07:23:19 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:20165 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752105AbdEHLXM (ORCPT ); Mon, 8 May 2017 07:23:12 -0400 X-AuditID: cbfec7f2-f797e6d000004438-fc-5910551a7f85 Subject: Re: [PATCH V11 00/11] IOMMU probe deferral support To: Sricharan R , robin.murphy@arm.com, will.deacon@arm.com, joro@8bytes.org, lorenzo.pieralisi@arm.com, iommu@lists.linux-foundation.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, bhelgaas@google.com, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, tn@semihalf.com, hanjun.guo@linaro.org, okaya@codeaurora.org, robh+dt@kernel.org, frowand.list@gmail.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, sudeep.holla@arm.com, rjw@rjwysocki.net, lenb@kernel.org, catalin.marinas@arm.com, arnd@arndb.de, linux-arch@vger.kernel.org, gregkh@linuxfoundation.org From: Marek Szyprowski Message-id: <5617791f-407a-1ab3-53aa-0f09fcd716aa@samsung.com> Date: Mon, 08 May 2017 13:23:04 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-version: 1.0 In-reply-to: <1491823266-1209-1-git-send-email-sricharan@codeaurora.org> Content-type: text/plain; charset=utf-8; format=flowed Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA02SaUiUQRzGm933cmltWq0mNaOFPnRoWX2YNMwg6lUIkgoypNzyTSUv9lXT vmS6Wx6VF6itravkEWIoq4gbHrluKt55YZameWW4ZJmRmZbbu4HffvN/nnlmnmEYsUxNOTAh 4VGcMlwRKqckRE3LcreLwyXod3jO5IFXM1toXJQQjL+UPARYZ+om8ZP5PxROfFZB4craVBIX NHrg5LxKGhsmzBQubUgDOOnlEoH1k0MkzmjsonH/y6cU7spvpfD8yica38usEeHOjj4Sq+tN NG5amCLx94wkApe21xK40Kil8dzXNsJrJzvVlC9iy/PLAbvyKxOw/Y8fiViDZpRmC/TRrL4s mWLfD9VRbKO2nGariu6yWcOlgK0efECwc9WR7KLe+bztFcmJQC40JIZTHvIMkAT/qJwWR46f jB37+JyKB4WuKcCGQfAYMumGxQJvR71jFVQKkDAyWAzQjwwzISwWATK8WKL/7/iekySysAyW AGTMviCYZgFaG2ggLYId9EDa0UHSIthDFYkK+rooi0BBN5RiTvnHUuiJ3jb3/Esl4F408LsX WHgb9EfN/Quk4NmKfmaNrV+DYWwgiwz3AixjMXRHM2tqUuDdqKrcbK0wzqBXxactdgR3If0r 6/g0WpzstLId+txabe3ihPqzUgmB0wBKUB8QOBegbrNUYA/U3PrGepQtyqzJEQvxUpR0XyZY WDSyUGKNPIVMU2ogPEneeowmHaQDZ82GMpoNDTQbGhQAcRmw56L5sCCOP+rKK8L46PAg1xsR YXqw/jk71lq/1YKlNncjgAyQb5YG8Fv8ZKQiho8LMwLEiOX20tve0E8mDVTE3eGUEdeU0aEc bwSODCHfIZW0D12WwSBFFHeL4yI55X9VxNg4xINs7cVY4+hr/tjN609X3iUmqPZEZJS41Pcc P546c8V3vMllVJUsf+jT5aJc3eRzbqLbt9hfm73p6xqsfOD0eTp14WRdUOQNqcyrZewa4/jM GFD/re+qYXEf5RRfKvqQp6oo9Po45a2f3a2bjA+dcFyuOVtbdGZEx5XlHqk/WPRJ5S4n+GCF 236xklf8BYvAMhSYAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBKsWRmVeSWpSXmKPExsVy+t/xy7oWoQKRBge3WVn8nXSM3WJJU4bF +2U9jBbzj5xjtZj55j+bRfPi9WwWG3Z0s1os2G9t0Tl7A7vFzodv2SyW7+tntOjY9ZXFYtPj a6wWE/efZbe4vGsOm8XZecfZLN78fsFu0ThpG5PFmdOXWC1a9x5htzj44QmrxZeJHSwWy0/t YLFYeGguu8XLjydYHCQ9nhycx+SxZt4aRo/fvyYxelzu62Xy2DnrLrvHgk2lHptWdbJ53Lm2 h81j/9w17B6bl9R7TL6xnNFjy9V2Fo+XWwo8Pm+SC+CLcrPJSE1MSS1SSM1Lzk/JzEu3VQoN cdO1UFLIS8xNtVWK0PUNCVJSKEvMKQXyjAzQgINzgHuwkr5dglvGtw1PmQse2Ffce7SCrYFx oV4XIyeHhICJxJfpHUwQtpjEhXvr2boYuTiEBJYwSnRfnM8M4TxnlJh/9gsjSJWwgLXE3LtX WUESIgItrBLzZh9nhaiayygxeV8nO0gVm4ChRNfbLjYQm1fATuLm4fNgcRYBVYkrfy6ATRIV iJFoWfKBEaJGUOLH5HssXYwcHJwCHhI7GxNAwswCZhJfXh5mhbDlJTavecs8gZF/FpKOWUjK ZiEpW8DIvIpRJLW0ODc9t9hIrzgxt7g0L10vOT93EyMwlWw79nPLDsaud8GHGAU4GJV4eHeU 8kcKsSaWFVfmHmKU4GBWEuEt9xSIFOJNSaysSi3Kjy8qzUktPsRoCvTDRGYp0eR8YJrLK4k3 NDE0tzQ0MrawMDcyUhLnnfrhSriQQHpiSWp2ampBahFMHxMHp1QDY9jZsDPTTpVeb5jDvL3s WfKPkzUC077Pk54pkuVxbmFBlfaXZ2ZnvM42LG/XkPYUnbjNZZOuxN+j76JrNhoXFR6Ydmfe Y5uP361cYi5c2h1gfGBtS39ty+yf/1l5nMTeZLxq2OSfsHp1/FKF37zsy4QC1Z/PurtU92OT 0tQZe5001xQIaznnhyuxFGckGmoxFxUnAgAehjMyOwMAAA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170508112306eucas1p1d56ccb12f035b831a561433f87e12ef6 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRs=?= =?UTF-8?B?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRtT?= =?UTF-8?B?YW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170410112136epcas2p2cdd7dc21a8dc0ffcfab7f8290c4b7467 X-RootMTR: 20170410112136epcas2p2cdd7dc21a8dc0ffcfab7f8290c4b7467 References: <1491823266-1209-1-git-send-email-sricharan@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Sricharan, On 2017-04-10 13:20, 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 iommu-next and with 3-way merge applies on top of linux-next > as well (patch #8), because of "ACPI platform MSI support" from > Hanjun being merged. > > * Tested with platform and pci devices for probe deferral > and reprobe on arm64 based platform. I just noticed that in the meantime the following patch: "arm: dma-mapping: Reset the device's dma_ops" (https://patchwork.kernel.org/patch/9434105/ ) has been dropped from this series. Lack of it causes serious issues with deferred probe of devices, which are under IOMMU on ARM architecture. Please check where it got lost and push it to Russell's patch tracking system ASAP to get it during v4.12-rcX cycle. > > Previous post of this series [8]. > > Please note that, i have kept the tested/acked tags intact from V8 > because V9/10/11 were for more fixes that was added, so the original > tags that was given for the functional testing remains the same. > > [V11] > * No functional changes. > > * Rebased on top of 4.11-rc6. > > * Dropped patch#3 from V10, as a result have to make > a change in patch#7 to return a 'non-void' to fix a > build warning. > > * Added Robin's and Rob's tags. > > [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@xxxxxxxxxxxxxxxxxxxxxxxxxx/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://lkml.iu.edu/hypermail/linux/kernel/1704.0/01557.html > > Laurent Pinchart (2): > of: dma: Make of_dma_deconfigure() public > iommu: of: Handle IOMMU lookup failure with deferred probing or error > > Lorenzo Pieralisi (2): > ACPI/IORT: Add function to check SMMUs drivers presence > ACPI/IORT: Remove linker section for IORT entries probing > > Robin Murphy (3): > iommu/of: Refactor of_iommu_configure() for error handling > iommu/of: Prepare for deferred IOMMU configuration > iommu/arm-smmu: Clean up early-probing workarounds > > Sricharan R (4): > of: device: Fix overflow of coherent_dma_mask > of/acpi: Configure dma operations at probe time for platform/amba/pci > bus devices > drivers: acpi: Handle IOMMU lookup failure with deferred probing or > error > arm64: dma-mapping: Remove the notifier trick to handle early setting > of dma_ops > > arch/arm64/mm/dma-mapping.c | 142 +++++--------------------------------- > drivers/acpi/arm64/iort.c | 48 ++++++++++++- > drivers/acpi/glue.c | 5 -- > drivers/acpi/scan.c | 11 ++- > drivers/base/dd.c | 9 +++ > drivers/base/dma-mapping.c | 41 +++++++++++ > drivers/iommu/arm-smmu-v3.c | 46 +----------- > drivers/iommu/arm-smmu.c | 110 +++++++++++++---------------- > drivers/iommu/of_iommu.c | 126 ++++++++++++++++++++++++--------- > drivers/of/device.c | 23 +++++- > drivers/of/platform.c | 10 +-- > drivers/pci/probe.c | 28 -------- > include/acpi/acpi_bus.h | 2 +- > include/asm-generic/vmlinux.lds.h | 1 - > include/linux/acpi.h | 7 +- > include/linux/acpi_iort.h | 3 - > include/linux/dma-mapping.h | 12 ++++ > include/linux/of_device.h | 10 ++- > 18 files changed, 312 insertions(+), 322 deletions(-) > Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland