From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Sricharan R <sricharan@codeaurora.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
robin.murphy@arm.com, will.deacon@arm.com, joro@8bytes.org,
iommu@lists.linux-foundation.org,
linux-arm-kernel@lists.infradead.org,
linux-arm-msm@vger.kernel.org, m.szyprowski@samsung.com,
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,
lenb@kernel.org, catalin.marinas@arm.com, arnd@arndb.de,
linux-arch@vger.kernel.org, laurent.pinchart@ideasonboard.com,
j.neuschaefer@gmx.net, geert@linux-m68k.org,
magnus.damm@gmail.com, nwatters@codeaurora.org,
linux@armlinux.org.uk
Subject: Re: [PATCH v6 3/6] ACPI/IORT: Ignore all errors except EPROBE_DEFER
Date: Tue, 30 May 2017 10:06:52 +0100 [thread overview]
Message-ID: <20170530090652.GA1767@red-moon> (raw)
In-Reply-To: <68bc9be5-22df-e7af-3fcd-182e935e681c@codeaurora.org>
On Mon, May 29, 2017 at 10:36:42AM +0530, Sricharan R wrote:
> Hi Rafael,
>
> On 5/28/2017 12:48 AM, Rafael J. Wysocki wrote:
> > On Saturday, May 27, 2017 07:17:42 PM Sricharan R wrote:
> >> While deferring the probe of IOMMU masters, xlate and
> >> add_device callbacks called from iort_iommu_configure
> >> can pass back error values like -ENODEV, which means
> >> the IOMMU cannot be connected with that master for real
> >> reasons. Before the IOMMU probe deferral, all such errors
> >> were ignored. Now all those errors are propagated back,
> >> killing the master's probe for such errors. Instead ignore
> >> all the errors except EPROBE_DEFER, which is the only one
> >> of concern and let the master work without IOMMU, thus
> >> restoring the old behavior. Also make explicit that
> >> acpi_dma_configure handles only -EPROBE_DEFER from
> >> iort_iommu_configure.
> >>
> >> Fixes: 5a1bb638d567 ("drivers: acpi: Handle IOMMU lookup failure with deferred probing or error")
> >> Signed-off-by: Sricharan R <sricharan@codeaurora.org>
> >> ---
> >> drivers/acpi/arm64/iort.c | 6 ++++++
> >> drivers/acpi/scan.c | 4 ++--
> >> 2 files changed, 8 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> >> index c5fecf9..16e101f 100644
> >> --- a/drivers/acpi/arm64/iort.c
> >> +++ b/drivers/acpi/arm64/iort.c
> >> @@ -782,6 +782,12 @@ const struct iommu_ops *iort_iommu_configure(struct device *dev)
> >> if (err)
> >> ops = ERR_PTR(err);
> >>
> >> + /* Ignore all other errors apart from EPROBE_DEFER */
> >> + if (IS_ERR(ops) && (PTR_ERR(ops) != -EPROBE_DEFER)) {
> >> + dev_dbg(dev, "Adding to IOMMU failed: %ld\n", PTR_ERR(ops));
> >> + ops = NULL;
> >> + }
> >> +
> >> return ops;
> >> }
> >>
> >> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> >> index e39ec7b..3a10d757 100644
> >> --- a/drivers/acpi/scan.c
> >> +++ b/drivers/acpi/scan.c
> >> @@ -1371,8 +1371,8 @@ int acpi_dma_configure(struct device *dev, enum dev_dma_attr attr)
> >> iort_set_dma_mask(dev);
> >>
> >> iommu = iort_iommu_configure(dev);
> >> - if (IS_ERR(iommu))
> >> - return PTR_ERR(iommu);
> >> + if (IS_ERR(iommu) && PTR_ERR(iommu) == -EPROBE_DEFER)
> >> + return -EPROBE_DEFER;
> >>
> >> size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1);
> >> /*
> >>
> >
> > ACK for the scan.c change and I'm assuming this to go in via ARM64.
> >
>
> Thanks for the ACK, should go through the IOMMU tree, since this fixes the IOMMU probe deferral
> that got merged through it.
Yes and it would be good to get them merged for -rc4 given that there
are bug fixes there, I agree the IOMMU tree is the way they should
go upstream.
Lorenzo
WARNING: multiple messages have this Message-ID (diff)
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 3/6] ACPI/IORT: Ignore all errors except EPROBE_DEFER
Date: Tue, 30 May 2017 10:06:52 +0100 [thread overview]
Message-ID: <20170530090652.GA1767@red-moon> (raw)
In-Reply-To: <68bc9be5-22df-e7af-3fcd-182e935e681c@codeaurora.org>
On Mon, May 29, 2017 at 10:36:42AM +0530, Sricharan R wrote:
> Hi Rafael,
>
> On 5/28/2017 12:48 AM, Rafael J. Wysocki wrote:
> > On Saturday, May 27, 2017 07:17:42 PM Sricharan R wrote:
> >> While deferring the probe of IOMMU masters, xlate and
> >> add_device callbacks called from iort_iommu_configure
> >> can pass back error values like -ENODEV, which means
> >> the IOMMU cannot be connected with that master for real
> >> reasons. Before the IOMMU probe deferral, all such errors
> >> were ignored. Now all those errors are propagated back,
> >> killing the master's probe for such errors. Instead ignore
> >> all the errors except EPROBE_DEFER, which is the only one
> >> of concern and let the master work without IOMMU, thus
> >> restoring the old behavior. Also make explicit that
> >> acpi_dma_configure handles only -EPROBE_DEFER from
> >> iort_iommu_configure.
> >>
> >> Fixes: 5a1bb638d567 ("drivers: acpi: Handle IOMMU lookup failure with deferred probing or error")
> >> Signed-off-by: Sricharan R <sricharan@codeaurora.org>
> >> ---
> >> drivers/acpi/arm64/iort.c | 6 ++++++
> >> drivers/acpi/scan.c | 4 ++--
> >> 2 files changed, 8 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> >> index c5fecf9..16e101f 100644
> >> --- a/drivers/acpi/arm64/iort.c
> >> +++ b/drivers/acpi/arm64/iort.c
> >> @@ -782,6 +782,12 @@ const struct iommu_ops *iort_iommu_configure(struct device *dev)
> >> if (err)
> >> ops = ERR_PTR(err);
> >>
> >> + /* Ignore all other errors apart from EPROBE_DEFER */
> >> + if (IS_ERR(ops) && (PTR_ERR(ops) != -EPROBE_DEFER)) {
> >> + dev_dbg(dev, "Adding to IOMMU failed: %ld\n", PTR_ERR(ops));
> >> + ops = NULL;
> >> + }
> >> +
> >> return ops;
> >> }
> >>
> >> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> >> index e39ec7b..3a10d757 100644
> >> --- a/drivers/acpi/scan.c
> >> +++ b/drivers/acpi/scan.c
> >> @@ -1371,8 +1371,8 @@ int acpi_dma_configure(struct device *dev, enum dev_dma_attr attr)
> >> iort_set_dma_mask(dev);
> >>
> >> iommu = iort_iommu_configure(dev);
> >> - if (IS_ERR(iommu))
> >> - return PTR_ERR(iommu);
> >> + if (IS_ERR(iommu) && PTR_ERR(iommu) == -EPROBE_DEFER)
> >> + return -EPROBE_DEFER;
> >>
> >> size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1);
> >> /*
> >>
> >
> > ACK for the scan.c change and I'm assuming this to go in via ARM64.
> >
>
> Thanks for the ACK, should go through the IOMMU tree, since this fixes the IOMMU probe deferral
> that got merged through it.
Yes and it would be good to get them merged for -rc4 given that there
are bug fixes there, I agree the IOMMU tree is the way they should
go upstream.
Lorenzo
next prev parent reply other threads:[~2017-05-30 9:05 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-27 13:47 [PATCH v6 1/6] iommu: of: Fix check for returning EPROBE_DEFER Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
[not found] ` <1495892865-9506-1-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-05-27 13:47 ` [PATCH v6 2/6] iommu: of: Ignore all errors except EPROBE_DEFER Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` [PATCH v6 3/6] ACPI/IORT: " Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
[not found] ` <1495892865-9506-3-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-05-27 19:18 ` Rafael J. Wysocki
2017-05-27 19:18 ` Rafael J. Wysocki
2017-05-27 19:18 ` Rafael J. Wysocki
2017-05-29 5:06 ` Sricharan R
2017-05-29 5:06 ` Sricharan R
2017-05-30 9:06 ` Lorenzo Pieralisi [this message]
2017-05-30 9:06 ` Lorenzo Pieralisi
2017-05-27 13:47 ` [PATCH v6 4/6] ARM: dma-mapping: Don't tear down third-party mappings Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` [PATCH v6 5/6] ACPI/IORT: Move the check to get iommu_ops from translated fwspec Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` [PATCH v6 6/6] arm: dma-mapping: Reset the device's dma_ops Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-27 13:47 ` Sricharan R
2017-05-30 9:32 ` [PATCH v6 1/6] iommu: of: Fix check for returning EPROBE_DEFER Joerg Roedel
2017-05-30 9:32 ` Joerg Roedel
2017-05-30 9:32 ` Joerg Roedel
2017-05-30 9:32 ` Joerg Roedel
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=20170530090652.GA1767@red-moon \
--to=lorenzo.pieralisi@arm.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=catalin.marinas@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=geert@linux-m68k.org \
--cc=hanjun.guo@linaro.org \
--cc=iommu@lists.linux-foundation.org \
--cc=j.neuschaefer@gmx.net \
--cc=joro@8bytes.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=magnus.damm@gmail.com \
--cc=nwatters@codeaurora.org \
--cc=okaya@codeaurora.org \
--cc=rjw@rjwysocki.net \
--cc=robh+dt@kernel.org \
--cc=robin.murphy@arm.com \
--cc=sricharan@codeaurora.org \
--cc=sudeep.holla@arm.com \
--cc=tn@semihalf.com \
--cc=will.deacon@arm.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.