From: "Arınç ÜNAL" <arinc.unal@arinc9.com>
To: Dan Carpenter <dan.carpenter@linaro.org>
Cc: Vladimir Oltean <olteanv@gmail.com>,
Simon Horman <horms@kernel.org>,
Daniel Golle <daniel@makrotopia.org>,
Landen Chao <Landen.Chao@mediatek.com>,
DENG Qingfang <dqfext@gmail.com>,
Sean Wang <sean.wang@mediatek.com>, Andrew Lunn <andrew@lunn.ch>,
Florian Fainelli <f.fainelli@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Russell King <linux@armlinux.org.uk>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
Frank Wunderlich <frank-w@public-files.de>,
Bartel Eerdekens <bartel.eerdekens@constell8.be>,
mithat.guner@xeront.com, erkin.bozoglu@xeront.com
Subject: Re: [PATCH net-next 07/15] net: dsa: mt7530: do not run mt7530_setup_port5() if port 5 is disabled
Date: Sat, 6 Jan 2024 20:01:25 +0200 [thread overview]
Message-ID: <2ad136ed-be3a-407f-bf3c-5faf664b927c@arinc9.com> (raw)
In-Reply-To: <48b664fb-edf9-4170-abde-2eb99e04f0e5@suswa.mountain>
On 1/2/24 13:16, Dan Carpenter wrote:
> On Sun, Dec 17, 2023 at 03:22:27PM +0300, Arınç ÜNAL wrote:
>> On 8.12.2023 21:46, Vladimir Oltean wrote:
>>> Hmm, maybe the problem, all along, was that we let the -ENODEV return
>>> code from of_get_phy_mode() pass through? "interface" will really be
>>> uninitialized in that case. It's not a false positive.
>>>
>>> Instead of:
>>>
>>> ret = of_get_phy_mode(mac_np, &interface);
>>> if (ret && ret != -ENODEV) {
>>> ...
>>> return ret;
>>> }
>>>
>>> it should have been like this, to not complain:
>>>
>>> ret = of_get_phy_mode(mac_np, &interface);
>>> if (ret) {
>>> ...
>>> return ret;
>>> }
>>>
>>
>> I just tried this, smatch still reports "interface" as uninitialised.
>>
>> $ export ARCH=mips CROSS_COMPILE=mips-linux-gnu-
>> $ ../smatch/smatch_scripts/kchecker --spammy drivers/net/dsa/mt7530.c
>>
>> UPD include/config/kernel.release
>> UPD include/generated/utsrelease.h
>> CHECK scripts/mod/empty.c
>> CALL scripts/checksyscalls.sh
>> CC drivers/net/dsa/mt7530.o
>> CHECK drivers/net/dsa/mt7530.c
>> drivers/net/dsa/mt7530.c:217 mt7530_mii_read() warn: call of 'warn_slowpath_fmt' with non-constant format argument
>> drivers/net/dsa/mt7530.c:454 mt7530_setup_port6() error: uninitialized symbol 'ncpo1'.
>> drivers/net/dsa/mt7530.c:868 mt7530_set_ageing_time() error: uninitialized symbol 'age_count'.
>> drivers/net/dsa/mt7530.c:868 mt7530_set_ageing_time() error: uninitialized symbol 'age_unit'.
>> drivers/net/dsa/mt7530.c:2324 mt7530_setup() error: uninitialized symbol 'interface'.
>
> That's so strange.
>
> Vladimir was right that I was misreading what he said and also hadn't
> noticed the break.
>
> For me, his approach silences the warning with or without the cross
> function DB. Also of_get_phy_mode() initializes interface on all paths
> so checking for -EINVAL doesn't matter as far as this warning is
> concerned.
I must be missing something.
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index 7f9d63b61168..05ce3face47c 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -2325,7 +2325,7 @@ mt7530_setup(struct dsa_switch *ds)
if (phy_node->parent == priv->dev->of_node->parent) {
ret = of_get_phy_mode(mac_np, &interface);
- if (ret && ret != -ENODEV) {
+ if (ret) {
of_node_put(mac_np);
of_node_put(phy_node);
return ret;
$ ../smatch/smatch_scripts/kchecker --spammy drivers/net/dsa/mt7530.c
CHECK scripts/mod/empty.c
CALL scripts/checksyscalls.sh
DESCEND objtool
INSTALL libsubcmd_headers
CC drivers/net/dsa/mt7530.o
CHECK drivers/net/dsa/mt7530.c
drivers/net/dsa/mt7530.c:469 mt7530_pad_clk_setup() error: uninitialized symbol 'ncpo1'.
drivers/net/dsa/mt7530.c:895 mt7530_set_ageing_time() error: uninitialized symbol 'age_count'.
drivers/net/dsa/mt7530.c:895 mt7530_set_ageing_time() error: uninitialized symbol 'age_unit'.
drivers/net/dsa/mt7530.c:2346 mt7530_setup() error: uninitialized symbol 'interface'.
Just so you know, I intend to remove this whole PHY muxing feature once I
bring changing DSA conduit support to this subdriver. I've got two strong
reasons for this.
- Changing the DSA conduit achieves the same result with the only overhead
being the DSA header included on every frame.
- There can't be proper dt-bindings for it as the nature of the feature
shows that it represents an optional way to operate the hardware, it does
not represent a hardware design. Overall, the implementation is a hack to
make it work for specific hardware (switch must be connected to gmac1 of
a MediaTek SoC, no PHY must be present at address 0 or 4 on the MDIO bus
of the SoC. It should rather be configurable on userspace. Which will
never happen as it is specific to this switch and the changing DSA
conduit feature is the perfect substitute for this.
Let me know if you've got any suggestions that can get rid of the warning
without reworking the whole code block. Otherwise, I'm just going to ignore
it until I get rid of the whole code block.
Arınç
next prev parent reply other threads:[~2024-01-06 18:01 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-18 12:31 [PATCH net-next 00/15] MT7530 DSA subdriver improvements Arınç ÜNAL
2023-11-18 12:31 ` [PATCH net-next 01/15] net: dsa: mt7530: always trap frames to active CPU port on MT7530 Arınç ÜNAL
2023-11-18 14:34 ` Russell King (Oracle)
2023-12-02 8:29 ` Arınç ÜNAL
2023-12-07 17:48 ` Vladimir Oltean
2023-12-17 11:39 ` Arınç ÜNAL
2023-11-19 12:25 ` Vladimir Oltean
2023-11-18 12:31 ` [PATCH net-next 02/15] net: dsa: mt7530: use p5_interface_select as data type for p5_intf_sel Arınç ÜNAL
2023-11-19 14:40 ` Vladimir Oltean
2023-11-18 12:31 ` [PATCH net-next 03/15] net: dsa: mt7530: store port 5 SGMII capability of MT7531 Arınç ÜNAL
2023-11-19 14:50 ` Vladimir Oltean
2023-11-18 12:31 ` [PATCH net-next 04/15] net: dsa: mt7530: improve comments regarding port 5 and 6 Arınç ÜNAL
2023-11-18 12:31 ` [PATCH net-next 05/15] net: dsa: mt7530: improve code path for setting up port 5 Arınç ÜNAL
2023-11-18 14:41 ` Russell King (Oracle)
2023-12-02 8:36 ` Arınç ÜNAL
2023-12-07 18:03 ` Vladimir Oltean
2023-12-17 12:01 ` Arınç ÜNAL
2023-11-18 12:31 ` [PATCH net-next 06/15] net: dsa: mt7530: do not set priv->p5_interface on mt7530_setup_port5() Arınç ÜNAL
2023-12-07 18:18 ` Vladimir Oltean
2023-12-17 12:42 ` Arınç ÜNAL
2023-11-18 12:31 ` [PATCH net-next 07/15] net: dsa: mt7530: do not run mt7530_setup_port5() if port 5 is disabled Arınç ÜNAL
2023-11-21 18:53 ` Simon Horman
2023-12-02 8:45 ` Arınç ÜNAL
2023-12-02 9:30 ` Russell King (Oracle)
2023-12-06 21:46 ` Simon Horman
2023-12-07 6:51 ` Dan Carpenter
2023-12-07 18:40 ` Vladimir Oltean
2023-12-07 20:01 ` Vladimir Oltean
2023-12-08 4:23 ` Dan Carpenter
2023-12-08 18:46 ` Vladimir Oltean
2023-12-17 12:22 ` Arınç ÜNAL
2024-01-02 11:16 ` Dan Carpenter
2024-01-06 18:01 ` Arınç ÜNAL [this message]
2024-01-09 14:57 ` Vladimir Oltean
2024-01-10 7:26 ` Arınç ÜNAL
2024-01-10 18:23 ` Vladimir Oltean
2024-01-11 10:22 ` Arınç ÜNAL
2024-01-11 10:31 ` Vladimir Oltean
2024-01-11 10:35 ` Frank Wunderlich
2024-01-11 10:59 ` Arınç ÜNAL
2023-11-18 12:31 ` [PATCH net-next 08/15] net: dsa: mt7530: empty default case on mt7530_setup_port5() Arınç ÜNAL
2023-11-18 12:31 ` [PATCH net-next 09/15] net: dsa: mt7530: call port 6 setup from mt7530_mac_config() Arınç ÜNAL
2023-11-18 13:12 ` [PATCH net-next 10/15] net: dsa: mt7530: remove pad_setup function pointer Arınç ÜNAL
2023-11-18 13:13 ` [PATCH net-next 11/15] net: dsa: mt7530: move XTAL check to mt7530_setup() Arınç ÜNAL
2023-11-18 13:13 ` [PATCH net-next 12/15] net: dsa: mt7530: move enabling port 6 to mt7530_setup_port6() Arınç ÜNAL
2023-11-18 13:13 ` [PATCH net-next 13/15] net: dsa: mt7530: simplify mt7530_setup_port6() and change to void Arınç ÜNAL
2023-11-18 13:13 ` [PATCH net-next 14/15] net: dsa: mt7530: correct port capabilities of MT7988 Arınç ÜNAL
2023-11-18 13:13 ` [PATCH net-next 15/15] net: dsa: mt7530: do not clear config->supported_interfaces Arınç ÜNAL
2023-12-02 8:52 ` [PATCH net-next 00/15] MT7530 DSA subdriver improvements Arınç ÜNAL
2023-12-13 15:19 ` Vladimir Oltean
2023-12-13 16:51 ` Arınç ÜNAL
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=2ad136ed-be3a-407f-bf3c-5faf664b927c@arinc9.com \
--to=arinc.unal@arinc9.com \
--cc=Landen.Chao@mediatek.com \
--cc=andrew@lunn.ch \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bartel.eerdekens@constell8.be \
--cc=dan.carpenter@linaro.org \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=dqfext@gmail.com \
--cc=edumazet@google.com \
--cc=erkin.bozoglu@xeront.com \
--cc=f.fainelli@gmail.com \
--cc=frank-w@public-files.de \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=matthias.bgg@gmail.com \
--cc=mithat.guner@xeront.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=sean.wang@mediatek.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®