All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drivers/of_iommu: ignore SMMU DT nodes with status 'disabled'
@ 2017-04-14 12:43 ` Ard Biesheuvel
  0 siblings, 0 replies; 14+ messages in thread
From: Ard Biesheuvel @ 2017-04-14 12:43 UTC (permalink / raw)
  To: linux-arm-kernel, iommu, joro; +Cc: robin.murphy, will.deacon, Ard Biesheuvel

DT nodes may have a status property, and if they do, such nodes should
only be considered present if the status property is set to 'okay'.

Currently, we call the init function of IOMMUs described by the device
tree without taking this into account, which may result in the output
below on systems where some SMMUs may be legally disabled.

 Failed to initialise IOMMU /smb/smmu@e0200000
 Failed to initialise IOMMU /smb/smmu@e0c00000
 arm-smmu e0a00000.smmu: probing hardware configuration...
 arm-smmu e0a00000.smmu: SMMUv1 with:
 arm-smmu e0a00000.smmu:  stage 2 translation
 arm-smmu e0a00000.smmu:  coherent table walk
 arm-smmu e0a00000.smmu:  stream matching with 32 register groups, mask 0x7fff
 arm-smmu e0a00000.smmu:  8 context banks (8 stage-2 only)
 arm-smmu e0a00000.smmu:  Supported page sizes: 0x60211000
 arm-smmu e0a00000.smmu:  Stage-2: 40-bit IPA -> 40-bit PA
 Failed to initialise IOMMU /smb/smmu@e0600000
 Failed to initialise IOMMU /smb/smmu@e0800000

Since this is not an error condition, only call the init function if
the device is enabled, which also inhibits the spurious error messages.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 drivers/iommu/of_iommu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index 2683e9fc0dcf..2dd1206e6c0d 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -183,7 +183,7 @@ static int __init of_iommu_init(void)
 	for_each_matching_node_and_match(np, matches, &match) {
 		const of_iommu_init_fn init_fn = match->data;
 
-		if (init_fn(np))
+		if (of_device_is_available(np) && init_fn(np))
 			pr_err("Failed to initialise IOMMU %s\n",
 				of_node_full_name(np));
 	}
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2017-05-03 10:58 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-14 12:43 [PATCH] drivers/of_iommu: ignore SMMU DT nodes with status 'disabled' Ard Biesheuvel
2017-04-14 12:43 ` Ard Biesheuvel
     [not found] ` <20170414124315.2401-1-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-04-28 13:11   ` Will Deacon
2017-04-28 13:11     ` Will Deacon
     [not found]     ` <20170428131133.GJ13675-5wv7dgnIgG8@public.gmane.org>
2017-04-28 13:14       ` Ard Biesheuvel
2017-04-28 13:14         ` Ard Biesheuvel
     [not found]         ` <CAKv+Gu_G9fw0kwSetXmGjomc8Y_nu95O=rEVzgfafNRs0dtgvg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-04-28 13:17           ` Will Deacon
2017-04-28 13:17             ` Will Deacon
     [not found]             ` <20170428131744.GL13675-5wv7dgnIgG8@public.gmane.org>
2017-04-28 13:22               ` Ard Biesheuvel
2017-04-28 13:22                 ` Ard Biesheuvel
     [not found]                 ` <CAKv+Gu8L1iyzBitt8zzvWDDEXk_ysGfPRxHJbQQK5o8NMWF5MA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-05-03 10:32                   ` Robin Murphy
2017-05-03 10:32                     ` Robin Murphy
     [not found]                     ` <1c0463e6-f82f-1179-4f54-b2d3de63dc87-5wv7dgnIgG8@public.gmane.org>
2017-05-03 10:58                       ` Ard Biesheuvel
2017-05-03 10:58                         ` Ard Biesheuvel

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.