Re: [PATCH net] net: lan966x: Remove ptp traps in case the ptp is not enabled.

From: Vladimir Oltean
Date: Tue May 14 2024 - 18:22:08 EST


On Tue, May 14, 2024 at 09:35:00PM +0200, Horatiu Vultur wrote:
> 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()")
> Signed-off-by: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx>
> ---
> drivers/net/ethernet/microchip/lan966x/lan966x_main.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
> index 2635ef8958c80..318676e42bb62 100644
> --- a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
> +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
> @@ -479,8 +479,10 @@ static int lan966x_port_hwtstamp_set(struct net_device *dev,
> return err;
>
> if (cfg->source == HWTSTAMP_SOURCE_NETDEV) {
> - if (!port->lan966x->ptp)
> + if (!port->lan966x->ptp) {
> + lan966x_ptp_del_traps(port);
> return -EOPNOTSUPP;
> + }
>
> err = lan966x_ptp_hwtstamp_set(port, cfg, extack);
> if (err) {
> --
> 2.34.1
>

Alternatively, the -EOPNOTSUPP check could be moved before programming
the traps in the first place.

Reviewed-by: Vladimir Oltean <vladimir.oltean@xxxxxxx>