mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-26 00:41:17 +00:00
40b02a2301
Now that the armvirt target supports real hardware, not just VMs, thanks to the addition of EFI, rename it to something more appropriate. 'armsr' (Arm SystemReady) was chosen after the name of the Arm standards program. The 32 and 64 bit targets have also been renamed armv7 and armv8 respectively, to allow future profiles where required (such as armv9). See https://developer.arm.com/documentation/102858/0100/Introduction for more information. Signed-off-by: Mathew McBride <matt@traverse.com.au>
74 lines
2.1 KiB
Diff
74 lines
2.1 KiB
Diff
From a5e7f7e277bd4403c45c1c7922d56d0eb08dbc7c Mon Sep 17 00:00:00 2001
|
|
From: Vladimir Oltean <vladimir.oltean@nxp.com>
|
|
Date: Tue, 29 Nov 2022 16:12:15 +0200
|
|
Subject: [PATCH 08/14] net: dpaa2-switch: assign port_priv->mac after
|
|
dpaa2_mac_connect() call
|
|
|
|
The dpaa2-switch has the exact same locking requirements when connected
|
|
to a DPMAC, so it needs port_priv->mac to always point either to NULL,
|
|
or to a DPMAC with a fully initialized phylink instance.
|
|
|
|
Make the same preparatory change in the dpaa2-switch driver as in the
|
|
dpaa2-eth one.
|
|
|
|
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
|
|
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
|
|
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com>
|
|
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|
---
|
|
.../ethernet/freescale/dpaa2/dpaa2-switch.c | 21 +++++++++++--------
|
|
1 file changed, 12 insertions(+), 9 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c
|
|
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c
|
|
@@ -1450,9 +1450,8 @@ static int dpaa2_switch_port_connect_mac
|
|
err = dpaa2_mac_open(mac);
|
|
if (err)
|
|
goto err_free_mac;
|
|
- port_priv->mac = mac;
|
|
|
|
- if (dpaa2_switch_port_is_type_phy(port_priv)) {
|
|
+ if (dpaa2_mac_is_type_phy(mac)) {
|
|
err = dpaa2_mac_connect(mac);
|
|
if (err) {
|
|
netdev_err(port_priv->netdev,
|
|
@@ -1462,11 +1461,12 @@ static int dpaa2_switch_port_connect_mac
|
|
}
|
|
}
|
|
|
|
+ port_priv->mac = mac;
|
|
+
|
|
return 0;
|
|
|
|
err_close_mac:
|
|
dpaa2_mac_close(mac);
|
|
- port_priv->mac = NULL;
|
|
err_free_mac:
|
|
kfree(mac);
|
|
return err;
|
|
@@ -1474,15 +1474,18 @@ err_free_mac:
|
|
|
|
static void dpaa2_switch_port_disconnect_mac(struct ethsw_port_priv *port_priv)
|
|
{
|
|
- if (dpaa2_switch_port_is_type_phy(port_priv))
|
|
- dpaa2_mac_disconnect(port_priv->mac);
|
|
+ struct dpaa2_mac *mac = port_priv->mac;
|
|
+
|
|
+ port_priv->mac = NULL;
|
|
|
|
- if (!dpaa2_switch_port_has_mac(port_priv))
|
|
+ if (!mac)
|
|
return;
|
|
|
|
- dpaa2_mac_close(port_priv->mac);
|
|
- kfree(port_priv->mac);
|
|
- port_priv->mac = NULL;
|
|
+ if (dpaa2_mac_is_type_phy(mac))
|
|
+ dpaa2_mac_disconnect(mac);
|
|
+
|
|
+ dpaa2_mac_close(mac);
|
|
+ kfree(mac);
|
|
}
|
|
|
|
static irqreturn_t dpaa2_switch_irq0_handler_thread(int irq_num, void *arg)
|