linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: sricharan@codeaurora.org (Sricharan)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 06/10] iommu: of: Handle IOMMU lookup failure with deferred probing or error
Date: Wed, 30 Nov 2016 16:57:33 +0530	[thread overview]
Message-ID: <000001d24afc$c2ef91a0$48ceb4e0$@codeaurora.org> (raw)
In-Reply-To: <8e91ce72-9d37-f4be-9224-856a1a4c3e1d@samsung.com>

Hi,

>Hi Sricharan and Robin,
>
>
>On 2016-11-30 01:22, Sricharan R wrote:
>> From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
>>
>> Failures to look up an IOMMU when parsing the DT iommus property need to
>> be handled separately from the .of_xlate() failures to support deferred
>> probing.
>>
>> The lack of a registered IOMMU can be caused by the lack of a driver for
>> the IOMMU, the IOMMU device probe not having been performed yet, having
>> been deferred, or having failed.
>>
>> The first case occurs when the device tree describes the bus master and
>> IOMMU topology correctly but no device driver exists for the IOMMU yet
>> or the device driver has not been compiled in. Return NULL, the caller
>> will configure the device without an IOMMU.
>>
>> The second and third cases are handled by deferring the probe of the bus
>> master device which will eventually get reprobed after the IOMMU.
>>
>> The last case is currently handled by deferring the probe of the bus
>> master device as well. A mechanism to either configure the bus master
>> device without an IOMMU or to fail the bus master device probe depending
>> on whether the IOMMU is optional or mandatory would be a good
>> enhancement.
>>
>> Signed-off-by: Laurent Pichart <laurent.pinchart+renesas@ideasonboard.com>
>> Signed-off-by: Sricharan R <sricharan@codeaurora.org>
>> [rm: massive PCI hacks]
>> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
>> ---
>>   drivers/base/dma-mapping.c | 4 ++--
>>   drivers/iommu/dma-iommu.c  | 1 +
>>   drivers/iommu/of_iommu.c   | 5 +++--
>>   drivers/of/device.c        | 9 +++++++--
>>   drivers/pci/probe.c        | 6 ++++--
>>   include/linux/of_device.h  | 9 ++++++---
>>   include/linux/pci.h        | 4 ++--
>>   7 files changed, 25 insertions(+), 13 deletions(-)
>>
>> diff --git a/drivers/base/dma-mapping.c b/drivers/base/dma-mapping.c
>> index b2a5629..576fdfb 100644
>> --- a/drivers/base/dma-mapping.c
>> +++ b/drivers/base/dma-mapping.c
>> @@ -351,9 +351,9 @@ void dma_common_free_remap(void *cpu_addr, size_t size, unsigned long vm_flags)
>>   int dma_configure(struct device *dev)
>>   {
>>   	if (dev_is_pci(dev))
>> -		pci_dma_configure(dev);
>> +		return pci_dma_configure(dev);
>>   	else if (dev->of_node)
>> -		of_dma_configure(dev, dev->of_node);
>> +		return of_dma_configure(dev, dev->of_node);
>>   	return 0;
>>   }
>>
>> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
>> index c5ab866..d2a7a46 100644
>> --- a/drivers/iommu/dma-iommu.c
>> +++ b/drivers/iommu/dma-iommu.c
>> @@ -148,6 +148,7 @@ int iommu_dma_init_domain(struct iommu_domain *domain, dma_addr_t base,
>>   	base_pfn = max_t(unsigned long, 1, base >> order);
>>   	end_pfn = (base + size - 1) >> order;
>>
>> +	dev_info(dev, "0x%llx 0x%llx, 0x%llx 0x%llx, 0x%llx 0x%llx\n", base, size, domain->geometry.aperture_start, domain-
>>geometry.aperture_end,
>
>This causes a NULL pointer dereference if caller passes NULL device pointer.
>There is such caller in drivers/gpu/drm/exynos/exynos_drm_iommu.h.
>Trivial to fix as it looks like a leftover from developement or
>debugging stage.
>
My bad, i should have removed it before posting. Noticed this, but missed to remove it.
Will do so.

Regards,
 Sricharan

  reply	other threads:[~2016-11-30 11:27 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20161130002326epcas2p462e9291a284c562b3cfeb2ee4339c5af@epcas2p4.samsung.com>
2016-11-30  0:22 ` [PATCH v4 00/10] IOMMU probe deferral support Sricharan R
2016-11-30  0:22   ` [PATCH 01/10] iommu/of: Refactor of_iommu_configure() for error handling Sricharan R
2016-11-30  0:22   ` [PATCH 02/10] iommu/of: Prepare for deferred IOMMU configuration Sricharan R
2016-11-30 16:17     ` Lorenzo Pieralisi
2016-11-30 16:42       ` Robin Murphy
2016-12-01 11:29         ` Lorenzo Pieralisi
2016-12-01 11:50           ` Sricharan
2017-01-05  8:34           ` Sricharan
2017-01-05 12:27             ` Lorenzo Pieralisi
2017-01-05 13:52               ` Robin Murphy
2017-01-05 14:51                 ` Sricharan
2017-01-06 16:24                   ` Lorenzo Pieralisi
2017-01-19 14:40                     ` Lorenzo Pieralisi
2017-01-19 15:10                       ` Sricharan
2017-01-05 15:35                 ` Lorenzo Pieralisi
2016-11-30  0:22   ` [PATCH 03/10] of: dma: Move range size workaround to of_dma_get_range() Sricharan R
2016-11-30  0:22   ` [PATCH 04/10] of: dma: Make of_dma_deconfigure() public Sricharan R
2016-11-30  0:22   ` [PATCH 05/10] drivers: platform: Configure dma operations at probe time Sricharan R
2016-11-30  0:22   ` [PATCH 06/10] iommu: of: Handle IOMMU lookup failure with deferred probing or error Sricharan R
2016-11-30  7:54     ` Marek Szyprowski
2016-11-30 11:27       ` Sricharan [this message]
2016-11-30 12:57       ` Robin Murphy
2016-11-30 14:01         ` Sricharan
2016-11-30  0:22   ` [PATCH 07/10] arm64: dma-mapping: Remove the notifier trick to handle early setting of dma_ops Sricharan R
2016-11-30  0:22   ` [PATCH 08/10] iommu/arm-smmu: Clean up early-probing workarounds Sricharan R
2016-11-30  0:22   ` [PATCH 09/10] drivers: acpi: Configure acpi devices dma operation at probe time Sricharan R
2016-11-30  0:22   ` [PATCH 10/10] drivers: acpi: Handle IOMMU lookup failure with deferred probing or error Sricharan R
2016-11-30  8:19   ` [PATCH v4 00/10] IOMMU probe deferral support Marek Szyprowski
2016-11-30 11:28     ` Sricharan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000001d24afc$c2ef91a0$48ceb4e0$@codeaurora.org' \
    --to=sricharan@codeaurora.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).