All of lore.kernel.org
 help / color / mirror / Atom feed
From: laurentiu.tudor@nxp.com
To: netdev@vger.kernel.org, madalin.bucur@nxp.com,
	roy.pledge@nxp.com, camelia.groza@nxp.com, leoyang.li@nxp.com
Cc: Joakim.Tjernlund@infinera.com, davem@davemloft.net,
	iommu@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	Laurentiu Tudor <laurentiu.tudor@nxp.com>
Subject: [PATCH v3 3/6] dpaa_eth: defer probing after qbman
Date: Thu, 30 May 2019 17:19:48 +0300	[thread overview]
Message-ID: <20190530141951.6704-4-laurentiu.tudor@nxp.com> (raw)
In-Reply-To: <20190530141951.6704-1-laurentiu.tudor@nxp.com>

From: Laurentiu Tudor <laurentiu.tudor@nxp.com>

Enabling SMMU altered the order of device probing causing the dpaa1
ethernet driver to get probed before qbman and causing a boot crash.
Add predictability in the probing order by deferring the ethernet
driver probe after qbman and portals by using the recently introduced
qbman APIs.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Acked-by: Madalin Bucur <madalin.bucur@nxp.com>
---
 .../net/ethernet/freescale/dpaa/dpaa_eth.c    | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
index d3f2408dc9e8..975f307f0caa 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -2774,6 +2774,37 @@ static int dpaa_eth_probe(struct platform_device *pdev)
 	int err = 0, i, channel;
 	struct device *dev;
 
+	err = bman_is_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev, "failing probe due to bman probe error\n");
+		return -ENODEV;
+	}
+	err = qman_is_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev, "failing probe due to qman probe error\n");
+		return -ENODEV;
+	}
+	err = bman_portals_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev,
+			"failing probe due to bman portals probe error\n");
+		return -ENODEV;
+	}
+	err = qman_portals_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev,
+			"failing probe due to qman portals probe error\n");
+		return -ENODEV;
+	}
+
 	/* device used for DMA mapping */
 	dev = pdev->dev.parent;
 	err = dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(40));
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: laurentiu.tudor@nxp.com
To: netdev@vger.kernel.org, madalin.bucur@nxp.com,
	roy.pledge@nxp.com, camelia.groza@nxp.com, leoyang.li@nxp.com
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
	linuxppc-dev@lists.ozlabs.org, davem@davemloft.net,
	linux-arm-kernel@lists.infradead.org,
	Laurentiu Tudor <laurentiu.tudor@nxp.com>
Subject: [PATCH v3 3/6] dpaa_eth: defer probing after qbman
Date: Thu, 30 May 2019 17:19:48 +0300	[thread overview]
Message-ID: <20190530141951.6704-4-laurentiu.tudor@nxp.com> (raw)
In-Reply-To: <20190530141951.6704-1-laurentiu.tudor@nxp.com>

From: Laurentiu Tudor <laurentiu.tudor@nxp.com>

Enabling SMMU altered the order of device probing causing the dpaa1
ethernet driver to get probed before qbman and causing a boot crash.
Add predictability in the probing order by deferring the ethernet
driver probe after qbman and portals by using the recently introduced
qbman APIs.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Acked-by: Madalin Bucur <madalin.bucur@nxp.com>
---
 .../net/ethernet/freescale/dpaa/dpaa_eth.c    | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
index d3f2408dc9e8..975f307f0caa 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -2774,6 +2774,37 @@ static int dpaa_eth_probe(struct platform_device *pdev)
 	int err = 0, i, channel;
 	struct device *dev;
 
+	err = bman_is_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev, "failing probe due to bman probe error\n");
+		return -ENODEV;
+	}
+	err = qman_is_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev, "failing probe due to qman probe error\n");
+		return -ENODEV;
+	}
+	err = bman_portals_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev,
+			"failing probe due to bman portals probe error\n");
+		return -ENODEV;
+	}
+	err = qman_portals_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev,
+			"failing probe due to qman portals probe error\n");
+		return -ENODEV;
+	}
+
 	/* device used for DMA mapping */
 	dev = pdev->dev.parent;
 	err = dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(40));
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: laurentiu.tudor@nxp.com
To: netdev@vger.kernel.org, madalin.bucur@nxp.com,
	roy.pledge@nxp.com, camelia.groza@nxp.com, leoyang.li@nxp.com
Cc: linux-kernel@vger.kernel.org, Joakim.Tjernlund@infinera.com,
	iommu@lists.linux-foundation.org, linuxppc-dev@lists.ozlabs.org,
	davem@davemloft.net, linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 3/6] dpaa_eth: defer probing after qbman
Date: Thu, 30 May 2019 17:19:48 +0300	[thread overview]
Message-ID: <20190530141951.6704-4-laurentiu.tudor@nxp.com> (raw)
In-Reply-To: <20190530141951.6704-1-laurentiu.tudor@nxp.com>

From: Laurentiu Tudor <laurentiu.tudor@nxp.com>

Enabling SMMU altered the order of device probing causing the dpaa1
ethernet driver to get probed before qbman and causing a boot crash.
Add predictability in the probing order by deferring the ethernet
driver probe after qbman and portals by using the recently introduced
qbman APIs.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Acked-by: Madalin Bucur <madalin.bucur@nxp.com>
---
 .../net/ethernet/freescale/dpaa/dpaa_eth.c    | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
index d3f2408dc9e8..975f307f0caa 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -2774,6 +2774,37 @@ static int dpaa_eth_probe(struct platform_device *pdev)
 	int err = 0, i, channel;
 	struct device *dev;
 
+	err = bman_is_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev, "failing probe due to bman probe error\n");
+		return -ENODEV;
+	}
+	err = qman_is_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev, "failing probe due to qman probe error\n");
+		return -ENODEV;
+	}
+	err = bman_portals_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev,
+			"failing probe due to bman portals probe error\n");
+		return -ENODEV;
+	}
+	err = qman_portals_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev,
+			"failing probe due to qman portals probe error\n");
+		return -ENODEV;
+	}
+
 	/* device used for DMA mapping */
 	dev = pdev->dev.parent;
 	err = dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(40));
-- 
2.17.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: laurentiu.tudor@nxp.com
To: netdev@vger.kernel.org, madalin.bucur@nxp.com,
	roy.pledge@nxp.com, camelia.groza@nxp.com, leoyang.li@nxp.com
Cc: linux-kernel@vger.kernel.org, Joakim.Tjernlund@infinera.com,
	iommu@lists.linux-foundation.org, linuxppc-dev@lists.ozlabs.org,
	davem@davemloft.net, linux-arm-kernel@lists.infradead.org,
	Laurentiu Tudor <laurentiu.tudor@nxp.com>
Subject: [PATCH v3 3/6] dpaa_eth: defer probing after qbman
Date: Thu, 30 May 2019 17:19:48 +0300	[thread overview]
Message-ID: <20190530141951.6704-4-laurentiu.tudor@nxp.com> (raw)
In-Reply-To: <20190530141951.6704-1-laurentiu.tudor@nxp.com>

From: Laurentiu Tudor <laurentiu.tudor@nxp.com>

Enabling SMMU altered the order of device probing causing the dpaa1
ethernet driver to get probed before qbman and causing a boot crash.
Add predictability in the probing order by deferring the ethernet
driver probe after qbman and portals by using the recently introduced
qbman APIs.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Acked-by: Madalin Bucur <madalin.bucur@nxp.com>
---
 .../net/ethernet/freescale/dpaa/dpaa_eth.c    | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
index d3f2408dc9e8..975f307f0caa 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -2774,6 +2774,37 @@ static int dpaa_eth_probe(struct platform_device *pdev)
 	int err = 0, i, channel;
 	struct device *dev;
 
+	err = bman_is_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev, "failing probe due to bman probe error\n");
+		return -ENODEV;
+	}
+	err = qman_is_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev, "failing probe due to qman probe error\n");
+		return -ENODEV;
+	}
+	err = bman_portals_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev,
+			"failing probe due to bman portals probe error\n");
+		return -ENODEV;
+	}
+	err = qman_portals_probed();
+	if (!err)
+		return -EPROBE_DEFER;
+	if (err < 0) {
+		dev_err(&pdev->dev,
+			"failing probe due to qman portals probe error\n");
+		return -ENODEV;
+	}
+
 	/* device used for DMA mapping */
 	dev = pdev->dev.parent;
 	err = dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(40));
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2019-05-30 14:20 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-30 14:19 [PATCH v3 0/6] Prerequisites for NXP LS104xA SMMU enablement laurentiu.tudor
2019-05-30 14:19 ` laurentiu.tudor
2019-05-30 14:19 ` laurentiu.tudor
2019-05-30 14:19 ` laurentiu.tudor
2019-05-30 14:19 ` [PATCH v3 1/6] fsl/fman: don't touch liodn base regs reserved on non-PAMU SoCs laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19 ` [PATCH v3 2/6] fsl/fman: add API to get the device behind a fman port laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19 ` laurentiu.tudor [this message]
2019-05-30 14:19   ` [PATCH v3 3/6] dpaa_eth: defer probing after qbman laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19 ` [PATCH v3 4/6] dpaa_eth: base dma mappings on the fman rx port laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19 ` [PATCH v3 5/6] dpaa_eth: fix iova handling for contiguous frames laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-31 16:32   ` Christoph Hellwig
2019-05-31 16:32     ` Christoph Hellwig
2019-05-31 16:32     ` Christoph Hellwig
2019-05-31 16:32     ` Christoph Hellwig
2019-05-31 16:53     ` Laurentiu Tudor
2019-05-31 16:53       ` Laurentiu Tudor
2019-05-31 16:53       ` Laurentiu Tudor
2019-05-31 16:53       ` Laurentiu Tudor
2019-05-31 16:55       ` Christoph Hellwig
2019-05-31 16:55         ` Christoph Hellwig
2019-05-31 16:55         ` Christoph Hellwig
2019-05-31 16:55         ` Christoph Hellwig
2019-05-31 17:01         ` Laurentiu Tudor
2019-05-31 17:01           ` Laurentiu Tudor
2019-05-31 17:01           ` Laurentiu Tudor
2019-05-31 17:01           ` Laurentiu Tudor
2019-05-30 14:19 ` [PATCH v3 6/6] dpaa_eth: fix iova handling for sg frames laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 14:19   ` laurentiu.tudor
2019-05-30 22:08 ` [PATCH v3 0/6] Prerequisites for NXP LS104xA SMMU enablement David Miller
2019-05-30 22:08   ` David Miller
2019-05-30 22:08   ` David Miller
2019-05-30 22:08   ` David Miller
2019-05-30 22:14   ` Li Yang
2019-05-30 22:14     ` Li Yang
2019-05-30 22:14     ` Li Yang
2019-05-30 22:14     ` Li Yang
2019-05-31 13:09   ` Laurentiu Tudor
2019-05-31 13:09     ` Laurentiu Tudor
2019-05-31 13:09     ` Laurentiu Tudor
2019-05-31 13:09     ` Laurentiu Tudor
2019-05-31 16:33   ` Christoph Hellwig
2019-05-31 16:33     ` Christoph Hellwig
2019-05-31 16:33     ` Christoph Hellwig
2019-05-31 16:33     ` Christoph Hellwig
2019-05-31 17:03     ` Robin Murphy
2019-05-31 17:03       ` Robin Murphy
2019-05-31 17:03       ` Robin Murphy
2019-05-31 17:03       ` Robin Murphy
2019-05-31 17:08       ` Christoph Hellwig
2019-05-31 17:08         ` Christoph Hellwig
2019-05-31 17:08         ` Christoph Hellwig
2019-05-31 17:08         ` Christoph Hellwig
2019-05-31 17:45         ` Robin Murphy
2019-05-31 17:45           ` Robin Murphy
2019-05-31 17:45           ` Robin Murphy
2019-05-31 17:45           ` Robin Murphy
2019-05-31 17:46           ` Christoph Hellwig
2019-05-31 17:46             ` Christoph Hellwig
2019-05-31 17:46             ` Christoph Hellwig
2019-05-31 17:46             ` Christoph Hellwig
2019-05-31 16:15 ` Andreas Färber
2019-05-31 16:15   ` Andreas Färber
2019-05-31 16:15   ` Andreas Färber
2019-05-31 16:15   ` Andreas Färber
2019-05-31 16:46   ` Laurentiu Tudor
2019-05-31 16:46     ` Laurentiu Tudor
2019-05-31 16:46     ` Laurentiu Tudor
2019-05-31 16:46     ` Laurentiu Tudor
2019-05-31 17:03     ` Andreas Färber
2019-05-31 17:03       ` Andreas Färber
2019-05-31 17:03       ` Andreas Färber
2019-05-31 17:03       ` Andreas Färber
2019-05-31 17:32       ` Laurentiu Tudor
2019-05-31 17:32         ` Laurentiu Tudor
2019-05-31 17:32         ` Laurentiu Tudor
2019-05-31 17:32         ` Laurentiu Tudor
2019-06-03 16:42         ` Andreas Färber
2019-06-03 16:42           ` Andreas Färber
2019-06-03 16:42           ` Andreas Färber
2019-06-03 16:42           ` Andreas Färber

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=20190530141951.6704-4-laurentiu.tudor@nxp.com \
    --to=laurentiu.tudor@nxp.com \
    --cc=Joakim.Tjernlund@infinera.com \
    --cc=camelia.groza@nxp.com \
    --cc=davem@davemloft.net \
    --cc=iommu@lists.linux-foundation.org \
    --cc=leoyang.li@nxp.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=madalin.bucur@nxp.com \
    --cc=netdev@vger.kernel.org \
    --cc=roy.pledge@nxp.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.