[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20170815145033.GA25618@8bytes.org>
Date: Tue, 15 Aug 2017 16:50:33 +0200
From: Joerg Roedel <joro@...tes.org>
To: Robin Murphy <robin.murphy@....com>
Cc: iommu@...ts.linux-foundation.org, linux-kernel@...r.kernel.org,
sudeep.holla@....com
Subject: Re: [PATCH v2] iommu/of: Fix of_iommu_configure() for disabled IOMMUs
On Fri, Aug 04, 2017 at 05:29:06PM +0100, Robin Murphy wrote:
> Sudeep reports that the logic got slightly broken when a PCI iommu-map
> entry targets an IOMMU marked as disabled in DT, since of_pci_map_rid()
> succeeds in following a phandle, and of_iommu_xlate() doesn't return an
> error value, but we miss checking whether ops was actually non-NULL.
> Whilst this could be solved with a point fix in of_pci_iommu_init(), it
> suggests that all the juggling of ERR_PTR values through the ops pointer
> is proving rather too complicated for its own good, so let's instead
> simplify the whole flow (with a side-effect of eliminating the cause of
> the bug).
>
> The fact that we now rely on iommu_fwspec means that we no longer need
> to pass around an iommu_ops pointer at all - we can simply propagate a
> regular int return value until we know whether we have a viable IOMMU,
> then retrieve the ops from the fwspec if and when we actually need them.
> This makes everything a bit more uniform and certainly easier to follow.
>
> Fixes: d87beb749281 ("iommu/of: Handle PCI aliases properly")
> Reported-by: Sudeep Holla <sudeep.holla@....com>
> Tested-by: Sudeep Holla <sudeep.holla@....com>
> Signed-off-by: Robin Murphy <robin.murphy@....com>
> ---
>
> v2: Don't break the -EPROBE_DEFER case
>
> drivers/iommu/of_iommu.c | 59 ++++++++++++++++++++++++------------------------
> 1 file changed, 29 insertions(+), 30 deletions(-)
Applied, thanks.
Powered by blists - more mailing lists