lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <1c1d8990-1719-5ad9-027a-856062021917@arinc9.com> Date: Thu, 25 May 2023 09:42:39 +0300 From: Arınç ÜNAL <arinc.unal@...nc9.com> To: Vladimir Oltean <olteanv@...il.com> Cc: Sean Wang <sean.wang@...iatek.com>, Landen Chao <Landen.Chao@...iatek.com>, DENG Qingfang <dqfext@...il.com>, Daniel Golle <daniel@...rotopia.org>, Andrew Lunn <andrew@...n.ch>, Florian Fainelli <f.fainelli@...il.com>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Matthias Brugger <matthias.bgg@...il.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>, Russell King <linux@...linux.org.uk>, Richard van Schagen <richard@...terhints.com>, Richard van Schagen <vschagen@...com>, Frank Wunderlich <frank-w@...lic-files.de>, Bartel Eerdekens <bartel.eerdekens@...stell8.be>, erkin.bozoglu@...ont.com, mithat.guner@...ont.com, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, linux-mediatek@...ts.infradead.org Subject: Re: [PATCH net-next 06/30] net: dsa: mt7530: improve code path for setting up port 5 On 24.05.2023 20:35, Vladimir Oltean wrote: > On Mon, May 22, 2023 at 03:15:08PM +0300, arinc9.unal@...il.com wrote: >> From: Arınç ÜNAL <arinc.unal@...nc9.com> >> >> There're two code paths for setting up port 5: >> >> mt7530_setup() >> -> mt7530_setup_port5() >> >> mt753x_phylink_mac_config() >> -> mt753x_mac_config() >> -> mt7530_mac_config() >> -> mt7530_setup_port5() >> >> Currently mt7530_setup_port5() from mt7530_setup() always runs. If port 5 >> is used as a CPU, DSA, or user port, mt7530_setup_port5() from >> mt753x_phylink_mac_config() won't run. That is because priv->p5_interface >> set on mt7530_setup_port5() will match state->interface on >> mt753x_phylink_mac_config() which will stop running mt7530_setup_port5() >> again. >> >> mt7530_setup_port5() from mt753x_phylink_mac_config() won't run when port 5 >> is disabled or used for PHY muxing as port 5 won't be defined on the >> devicetree. >> >> Therefore, mt7530_setup_port5() will never run from >> mt753x_phylink_mac_config(). >> >> Address this by not running mt7530_setup_port5() from mt7530_setup() if >> port 5 is used as a CPU, DSA, or user port. For the cases of PHY muxing or >> the port being disabled, call mt7530_setup_port5() from mt7530_setup(). > > So TL;DR: mt7530_setup() -> mt7530_setup_port5() short-circuits > mt753x_phylink_mac_config() -> ... -> mt7530_setup_port5() through the > stateful variable priv->p5_interface, such that port 5 is effectively > never configured by phylink, but statically at probe time. The main goal of > the patch is to undo the short-circuit, and let phylink configure port 5. True. > > It is worth stating that we know phylink will always be present, because > mt7530 isn't in the dsa_switches_apply_workarounds[] array. Otherwise > this strategy would have been problematic with some device trees. I will add this to the patch log: This driver isn't in the dsa_switches_apply_workarounds[] array so phylink will always be present. > >> Do not set priv->p5_interface on mt7530_setup_port5(). There won't be a >> case where mt753x_phylink_mac_config() runs after mt7530_setup_port5() >> anymore. > > The bulk of the change is difficult enough to follow. I believe this > part could be done through a separate patch, and the rest would still > work. Will do. Arınç
Powered by blists - more mailing lists