Thread (9 messages) flat view 9 messages, 3 authors, 2025-03-01

Re: [PATCH net 0/2] net: ethtool: netlink: Fix notifications for

From: <Parthiban.Veerasooran@microchip.com>
Date: 2025-02-28 06:19:20
Also in: lkml

Hi Maxime,

I did a quick test with your patches and it seems working fine without 
kernel crash.

Best regards,
Parthiban V
On 27/02/25 11:54 pm, Maxime Chevallier wrote:
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

It has been found (thanks to Parthiban) that the PLCA ethtool commands
were failing since 6.12, due to the phy_link_topology work. This was
traced back to the ethnl notifications mechanism, in which calls to
ethnl_req_get_phydev() crashed in the notification path following a
->set request.

The typical callsite for ethnl_req_get_phydev() looks like :

     phydev = ethnl_req_get_phydev(req_base, tb[ETHTOOL_A_XXX_HEADER],
                                   info->extack);

as 'tb' is NULL in the notification path for the ->prepare_data ethnl
ops, this causes crashes. The solution for that is to change the
prototype of ethnl_req_get_phydev() to perform checks inside the helper
(patch 1).

While investigating that, I realised that the notification path for PHYs
is not correct anyways. As we don't have a netlink request to parse, we
can't know for sure which PHY the notification event targets in the case
of a notification following a ->set request.

Patch 2 introduces a context structure that is used between ->set
requests and the followup notification, to keep track of the PHY that
the original request targeted for the notification.

Thanks Parthiban for the report (not on netdev@ though).

Maxime

Maxime Chevallier (2):
   net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device
   net: ethtool: netlink: Pass a context for default ethnl notifications

  net/ethtool/cabletest.c |  8 ++++----
  net/ethtool/linkstate.c |  2 +-
  net/ethtool/netlink.c   | 21 +++++++++++++++++----
  net/ethtool/netlink.h   |  5 +++--
  net/ethtool/phy.c       |  2 +-
  net/ethtool/plca.c      |  6 +++---
  net/ethtool/pse-pd.c    |  4 ++--
  net/ethtool/stats.c     |  2 +-
  net/ethtool/strset.c    |  2 +-
  9 files changed, 33 insertions(+), 19 deletions(-)

--
2.48.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help