From: Mohammed Anees <pvmohammedanees2003@gmail.com>
To: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Andrew Lunn <andrew@lunn.ch>,
Florian Fainelli <f.fainelli@gmail.com>,
Vladimir Oltean <olteanv@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Russell King <linux@armlinux.org.uk>,
Mohammed Anees <pvmohammedanees2003@gmail.com>
Subject: [PATCH v2] net: dsa: Fix conditional handling of Wake-on-Lan configuration in dsa_user_set_wol
Date: Mon, 7 Oct 2024 04:49:38 +0530 [thread overview]
Message-ID: <20241006231938.4382-1-pvmohammedanees2003@gmail.com> (raw)
In the original implementation of dsa_user_set_wol(), the return
value of phylink_ethtool_set_wol() was not checked, which could
lead to errors being ignored. This wouldn't matter if it returned
-EOPNOTSUPP, since that indicates the PHY layer doesn't support
the option, but if any other value is returned, it is problematic
and must be checked. The solution is to check the return value of
phylink_ethtool_set_wol(), and if it returns anything other than
-EOPNOTSUPP, immediately return the error. Only if it returns
-EOPNOTSUPP should the function proceed to check whether WoL can
be set by ds->ops->set_wol().
Fixes: 57719771a244 ("Merge tag 'sound-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound")
Signed-off-by: Mohammed Anees <pvmohammedanees2003@gmail.com>
---
v2:
- Added error checking for phylink_ethtool_set_wol(), ensuring correct
handling compared to v1.
___
net/dsa/user.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/net/dsa/user.c b/net/dsa/user.c
index 74eda9b30608..bae5ed22db91 100644
--- a/net/dsa/user.c
+++ b/net/dsa/user.c
@@ -1215,14 +1215,17 @@ static int dsa_user_set_wol(struct net_device *dev, struct ethtool_wolinfo *w)
{
struct dsa_port *dp = dsa_user_to_port(dev);
struct dsa_switch *ds = dp->ds;
- int ret = -EOPNOTSUPP;
-
- phylink_ethtool_set_wol(dp->pl, w);
-
+ int ret;
+
+ ret = phylink_ethtool_get_wol(dp->pl, w);
+
+ if (ret != -EOPNOTSUPP)
+ return ret;
+
if (ds->ops->set_wol)
- ret = ds->ops->set_wol(ds, dp->index, w);
+ return ds->ops->set_wol(ds, dp->index, w);
- return ret;
+ return -EOPNOTSUPP;
}
static int dsa_user_set_eee(struct net_device *dev, struct ethtool_keee *e)
--
2.46.0
next reply other threads:[~2024-10-06 23:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-06 23:19 Mohammed Anees [this message]
2024-10-07 8:57 ` [PATCH v2] net: dsa: Fix conditional handling of Wake-on-Lan configuration in dsa_user_set_wol Russell King (Oracle)
2024-10-07 21:13 ` kernel test robot
2024-10-07 22:22 ` Vladimir Oltean
2024-10-07 22:43 ` [PATCH] " Mohammed Anees
2024-10-07 23:15 ` [PATCH v2] " kernel test robot
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=20241006231938.4382-1-pvmohammedanees2003@gmail.com \
--to=pvmohammedanees2003@gmail.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.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;
as well as URLs for NNTP newsgroup(s).