Subject: Re: [PATCH net-next] net: hsr: emit notification for PRP slave2 changed hw addr on port deletion

From: Felix Maurer <[email-masked]>
Date: Tue, 7 Apr 2026 16:08:08 +0200

On Fri, Apr 03, 2026 at 02:39:29PM +0200, Fernando Fernandez Mancera wrote:
> On PRP protocol, when deleting the port the MAC address change
> notification was missing. In addition to that, make sure to only perform
> the MAC address change on slave2 deletion and PRP protocol as the
> operation isn't necessary for HSR nor slave1.
>
> Note that the eth_hw_addr_set() is correct on PRP context as the slaves
> are either in promiscuous mode or forward offload enabled.
>
> Fixes: b65999e7238e ("net: hsr: sync hw addr of slave2 according to slave1 hw addr on PRP")
> Reported-by: Luka Gejak <[email-masked]>
> Closes: https://lore.kernel.org/netdev/[email-masked]/
> Signed-off-by: Fernando Fernandez Mancera <[email-masked]>

I don't have a preference for the tree, but:
Reviewed-by: Felix Maurer <[email-masked]>

> ---
> Note: routed through net-next tree as the next net tree as rc6 batch is
> already out and I do not think this is worth to be included in a last
> call batch. Anyway, if maintainer thinks it is, feel free to apply it to
> net tree.
> ---
>  net/hsr/hsr_slave.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/net/hsr/hsr_slave.c b/net/hsr/hsr_slave.c
> index 44f83c8c56a7..d9af9e65f72f 100644
> --- a/net/hsr/hsr_slave.c
> +++ b/net/hsr/hsr_slave.c
> @@ -243,7 +243,11 @@ void hsr_del_port(struct hsr_port *port)
>  		if (!port->hsr->fwd_offloaded)
>  			dev_set_promiscuity(port->dev, -1);
>  		netdev_upper_dev_unlink(port->dev, master->dev);
> -		eth_hw_addr_set(port->dev, port->original_macaddress);
> +		if (hsr->prot_version == PRP_V1 &&
> +		    port->type == HSR_PT_SLAVE_B) {
> +			eth_hw_addr_set(port->dev, port->original_macaddress);
> +			call_netdevice_notifiers(NETDEV_CHANGEADDR, port->dev);
> +		}
>  	}
>
>  	kfree_rcu(port, rcu);
> --
> 2.53.0
>