All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 net 0/2] Reapply DSA fix for dpaa-eth with proper Fixes: tag
@ 2020-06-16 15:19 Vladimir Oltean
  2020-06-16 15:19 ` [PATCH v2 net 1/2] Revert "dpaa_eth: fix usage as DSA master, try 3" Vladimir Oltean
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Vladimir Oltean @ 2020-06-16 15:19 UTC (permalink / raw)
  To: davem
  Cc: netdev, andrew, vivien.didelot, f.fainelli, joakim.tjernlund,
	madalin.bucur, fido_max, linux-kernel

From: Vladimir Oltean <vladimir.oltean@nxp.com>

Joakim notified me that this fix breaks stable trees.
It turns out that my assessment about who-broke-who was wrong.
The real Fixes: tag should have been:

Fixes: 060ad66f9795 ("dpaa_eth: change DMA device")

which changes the device on which SET_NETDEV_DEV is made.

git describe --tags 060ad66f97954
v5.4-rc3-783-g060ad66f9795

Which means that it shouldn't have been backported to 4.19 and below.
This series reverts the commit with the misleading commit message, and
reapplies it with a corrected one. The resulting code is exactly the
same, but now, the revert should make it to the stable trees (along with
the bad fix), and the new fix should only make it down to v5.4.y.

Changes in v2:
Corrected the reversed sysfs paths in the new commit description.

Vladimir Oltean (2):
  Revert "dpaa_eth: fix usage as DSA master, try 3"
  dpaa_eth: fix usage as DSA master, try 4


-- 
2.25.1


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

* [PATCH v2 net 1/2] Revert "dpaa_eth: fix usage as DSA master, try 3"
  2020-06-16 15:19 [PATCH v2 net 0/2] Reapply DSA fix for dpaa-eth with proper Fixes: tag Vladimir Oltean
@ 2020-06-16 15:19 ` Vladimir Oltean
  2020-06-16 15:19 ` [PATCH v2 net 2/2] dpaa_eth: fix usage as DSA master, try 4 Vladimir Oltean
  2020-06-19  3:11 ` [PATCH v2 net 0/2] Reapply DSA fix for dpaa-eth with proper Fixes: tag David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Vladimir Oltean @ 2020-06-16 15:19 UTC (permalink / raw)
  To: davem
  Cc: netdev, andrew, vivien.didelot, f.fainelli, joakim.tjernlund,
	madalin.bucur, fido_max, linux-kernel

From: Vladimir Oltean <vladimir.oltean@nxp.com>

This reverts commit 5d14c304bfc14b4fd052dc83d5224376b48f52f0.

The Fixes: tag was incorrect, and it was subsequently backported to the
incorrect stable trees, breaking them.

Reported-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
Changes in v2:
None.

 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
index 2972244e6eb0..c4416a5f8816 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -2914,7 +2914,7 @@ static int dpaa_eth_probe(struct platform_device *pdev)
 	}
 
 	/* Do this here, so we can be verbose early */
-	SET_NETDEV_DEV(net_dev, dev->parent);
+	SET_NETDEV_DEV(net_dev, dev);
 	dev_set_drvdata(dev, net_dev);
 
 	priv = netdev_priv(net_dev);
-- 
2.25.1


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

* [PATCH v2 net 2/2] dpaa_eth: fix usage as DSA master, try 4
  2020-06-16 15:19 [PATCH v2 net 0/2] Reapply DSA fix for dpaa-eth with proper Fixes: tag Vladimir Oltean
  2020-06-16 15:19 ` [PATCH v2 net 1/2] Revert "dpaa_eth: fix usage as DSA master, try 3" Vladimir Oltean
@ 2020-06-16 15:19 ` Vladimir Oltean
  2020-06-19  3:11 ` [PATCH v2 net 0/2] Reapply DSA fix for dpaa-eth with proper Fixes: tag David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Vladimir Oltean @ 2020-06-16 15:19 UTC (permalink / raw)
  To: davem
  Cc: netdev, andrew, vivien.didelot, f.fainelli, joakim.tjernlund,
	madalin.bucur, fido_max, linux-kernel

From: Vladimir Oltean <vladimir.oltean@nxp.com>

The dpaa-eth driver probes on compatible string for the MAC node, and
the fman/mac.c driver allocates a dpaa-ethernet platform device that
triggers the probing of the dpaa-eth net device driver.

All of this is fine, but the problem is that the struct device of the
dpaa_eth net_device is 2 parents away from the MAC which can be
referenced via of_node. So of_find_net_device_by_node can't find it, and
DSA switches won't be able to probe on top of FMan ports.

It would be a bit silly to modify a core function
(of_find_net_device_by_node) to look for dev->parent->parent->of_node
just for one driver. We're just 1 step away from implementing full
recursion.

On T1040, the /sys/class/net/eth0 symlink currently points to:

/sys/devices/platform/ffe000000.soc/ffe400000.fman/ffe4e6000.ethernet/dpaa-ethernet.0/net/eth0

which pretty much illustrates the problem. The closest of_node we've got
is the "fsl,fman-memac" at /soc@ffe000000/fman@400000/ethernet@e6000,
which is what we'd like to be able to reference from DSA as host port.

For of_find_net_device_by_node to find the eth0 port, we would need the
parent of the eth0 net_device to not be the "dpaa-ethernet" platform
device, but to point 1 level higher, aka the "fsl,fman-memac" node
directly. The new sysfs path would look like this:

/sys/devices/platform/ffe000000.soc/ffe400000.fman/ffe4e6000.ethernet/net/eth0

Actually this has worked before, through the SET_NETDEV_DEV mechanism,
which sets the parent of the net_device as the parent of the platform
device. But the device which was set as sysfs parent was inadvertently
changed through commit 060ad66f9795 ("dpaa_eth: change DMA device"),
which did not take into consideration the effect it would have upon
of_find_net_device_by_node. So restore the old sysfs parent to make that
work correctly.

Fixes: 060ad66f9795 ("dpaa_eth: change DMA device")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
Changes in v2:
Corrected the reversed sysfs paths in the commit description
(thanks Jocke!)

 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
index c4416a5f8816..2972244e6eb0 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -2914,7 +2914,7 @@ static int dpaa_eth_probe(struct platform_device *pdev)
 	}
 
 	/* Do this here, so we can be verbose early */
-	SET_NETDEV_DEV(net_dev, dev);
+	SET_NETDEV_DEV(net_dev, dev->parent);
 	dev_set_drvdata(dev, net_dev);
 
 	priv = netdev_priv(net_dev);
-- 
2.25.1


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

* Re: [PATCH v2 net 0/2] Reapply DSA fix for dpaa-eth with proper Fixes: tag
  2020-06-16 15:19 [PATCH v2 net 0/2] Reapply DSA fix for dpaa-eth with proper Fixes: tag Vladimir Oltean
  2020-06-16 15:19 ` [PATCH v2 net 1/2] Revert "dpaa_eth: fix usage as DSA master, try 3" Vladimir Oltean
  2020-06-16 15:19 ` [PATCH v2 net 2/2] dpaa_eth: fix usage as DSA master, try 4 Vladimir Oltean
@ 2020-06-19  3:11 ` David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2020-06-19  3:11 UTC (permalink / raw)
  To: olteanv
  Cc: netdev, andrew, vivien.didelot, f.fainelli, joakim.tjernlund,
	madalin.bucur, fido_max, linux-kernel

From: Vladimir Oltean <olteanv@gmail.com>
Date: Tue, 16 Jun 2020 18:19:08 +0300

> From: Vladimir Oltean <vladimir.oltean@nxp.com>
> 
> Joakim notified me that this fix breaks stable trees.
> It turns out that my assessment about who-broke-who was wrong.
> The real Fixes: tag should have been:
> 
> Fixes: 060ad66f9795 ("dpaa_eth: change DMA device")
> 
> which changes the device on which SET_NETDEV_DEV is made.
> 
> git describe --tags 060ad66f97954
> v5.4-rc3-783-g060ad66f9795
> 
> Which means that it shouldn't have been backported to 4.19 and below.
> This series reverts the commit with the misleading commit message, and
> reapplies it with a corrected one. The resulting code is exactly the
> same, but now, the revert should make it to the stable trees (along with
> the bad fix), and the new fix should only make it down to v5.4.y.
> 
> Changes in v2:
> Corrected the reversed sysfs paths in the new commit description.

This is so messy.

What's done is done, just submit the necessary revert to -stable
if necessary and let's not just change things back and forth
because then we'll have two commits which make identical changes
and each having a different Fixes: tag which is confusing.

Thanks.

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

end of thread, other threads:[~2020-06-19  3:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-16 15:19 [PATCH v2 net 0/2] Reapply DSA fix for dpaa-eth with proper Fixes: tag Vladimir Oltean
2020-06-16 15:19 ` [PATCH v2 net 1/2] Revert "dpaa_eth: fix usage as DSA master, try 3" Vladimir Oltean
2020-06-16 15:19 ` [PATCH v2 net 2/2] dpaa_eth: fix usage as DSA master, try 4 Vladimir Oltean
2020-06-19  3:11 ` [PATCH v2 net 0/2] Reapply DSA fix for dpaa-eth with proper Fixes: tag David Miller

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.