Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: lan966x: Remove ptp traps in case the ptp is not enabled.

Lan966x is adding ptp traps to redirect the ptp frames to the CPU such
that the HW will not forward these frames anywhere. The issue is that in
case ptp is not enabled and the timestamping source is et to
HWTSTAMP_SOURCE_NETDEV then these traps would not be removed on the
error path.
Fix this by removing the traps in this case as they are not needed.

Fixes: 54e1ed69c40a ("net: lan966x: convert to ndo_hwtstamp_get() and ndo_hwtstamp_set()")
Suggested-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Link: https://lore.kernel.org/r/20240517135808.3025435-1-horatiu.vultur@microchip.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>

authored by

Horatiu Vultur and committed by
Paolo Abeni
eda40be3 30a92c9e

+3 -3
+3 -3
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
··· 474 474 cfg->source != HWTSTAMP_SOURCE_PHYLIB) 475 475 return -EOPNOTSUPP; 476 476 477 + if (cfg->source == HWTSTAMP_SOURCE_NETDEV && !port->lan966x->ptp) 478 + return -EOPNOTSUPP; 479 + 477 480 err = lan966x_ptp_setup_traps(port, cfg); 478 481 if (err) 479 482 return err; 480 483 481 484 if (cfg->source == HWTSTAMP_SOURCE_NETDEV) { 482 - if (!port->lan966x->ptp) 483 - return -EOPNOTSUPP; 484 - 485 485 err = lan966x_ptp_hwtstamp_set(port, cfg, extack); 486 486 if (err) { 487 487 lan966x_ptp_del_traps(port);