All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fernando Fernandez Mancera <fmancera@suse.de>
To: MD Danish Anwar <danishanwar@ti.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>,
	Felix Maurer <fmaurer@redhat.com>,
	Hangbin Liu <liuhangbin@gmail.com>, Kees Cook <kees@kernel.org>,
	Xiaoliang Yang <xiaoliang.yang_1@nxp.com>,
	Lukasz Majewski <lukma@denx.de>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net] net: hsr: enable promiscuous mode on interlink port with fwd offload
Date: Thu, 10 Sep 2026 11:09:42 +0200	[thread overview]
Message-ID: <e84cd7a1-8708-43bb-bbdc-25c10611f3ad@suse.de> (raw)
In-Reply-To: <20260908090856.2876114-1-danishanwar@ti.com>

On 9/8/26 11:08 AM, MD Danish Anwar wrote:
> hsr_portdev_setup() skips promiscuous mode on non-master ports when
> hsr->fwd_offloaded is set. fwd_offloaded is derived only from the ring
> slaves' NETIF_F_HW_HSR_FWD bit, so this also skips it for the interlink
> port, which never gets forwarding offload. Without promiscuous mode,
> the interlink NIC drops unicast frames addressed to hsr_dev's MAC
> (e.g. SAN traffic to the RedBox), breaking RedBox whenever the ring is
> HW-offloaded.
> 
> Fixes: 5055cccfc2d1 ("net: hsr: Provide RedBox support (HSR-SAN)")
> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>

Reviewed-by: Fernando Fernandez Mancera <fmancera@suse.de>

Thanks!

> ---
>   net/hsr/hsr_slave.c | 11 +++++++----
>   1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/net/hsr/hsr_slave.c b/net/hsr/hsr_slave.c
> index 01c73b4b50ddd..a546f70f9cc8b 100644
> --- a/net/hsr/hsr_slave.c
> +++ b/net/hsr/hsr_slave.c
> @@ -149,9 +149,12 @@ static int hsr_portdev_setup(struct hsr_priv *hsr, struct net_device *dev,
>   	int res;
>   
>   	/* Don't use promiscuous mode for offload since L2 frame forward
> -	 * happens at the offloaded hardware.
> +	 * happens at the offloaded hardware. The interlink port never
> +	 * gets forwarding offload (RedBox forwarding to/from it is done
> +	 * by this driver), so it still needs promiscuous mode to receive
> +	 * frames addressed to hsr_dev's MAC rather than its own.
>   	 */
> -	if (!port->hsr->fwd_offloaded) {
> +	if (!port->hsr->fwd_offloaded || port->type == HSR_PT_INTERLINK) {
>   		res = dev_set_promiscuity(dev, 1);
>   		if (res)
>   			return res;
> @@ -176,7 +179,7 @@ static int hsr_portdev_setup(struct hsr_priv *hsr, struct net_device *dev,
>   fail_rx_handler:
>   	netdev_upper_dev_unlink(dev, hsr_dev);
>   fail_upper_dev_link:
> -	if (!port->hsr->fwd_offloaded)
> +	if (!port->hsr->fwd_offloaded || port->type == HSR_PT_INTERLINK)
>   		dev_set_promiscuity(dev, -1);
>   
>   	return res;
> @@ -240,7 +243,7 @@ void hsr_del_port(struct hsr_port *port)
>   		netdev_update_features(master->dev);
>   		dev_set_mtu(master->dev, hsr_get_max_mtu(hsr));
>   		netdev_rx_handler_unregister(port->dev);
> -		if (!port->hsr->fwd_offloaded)
> +		if (!port->hsr->fwd_offloaded || port->type == HSR_PT_INTERLINK)
>   			dev_set_promiscuity(port->dev, -1);
>   		if (port->type == HSR_PT_SLAVE_A || port->type == HSR_PT_SLAVE_B)
>   			vlan_vids_del_by_dev(port->dev, master->dev);
> 
> base-commit: 8d6cd188508513503805c156165de38e4e4a8615


  parent reply	other threads:[~2026-09-10  9:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-08  9:08 [PATCH net] net: hsr: enable promiscuous mode on interlink port with fwd offload MD Danish Anwar
2026-09-09 16:34 ` Simon Horman
2026-09-10  9:09 ` Fernando Fernandez Mancera [this message]
2026-09-10 15:50 ` patchwork-bot+netdevbpf

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=e84cd7a1-8708-43bb-bbdc-25c10611f3ad@suse.de \
    --to=fmancera@suse.de \
    --cc=danishanwar@ti.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=fmaurer@redhat.com \
    --cc=horms@kernel.org \
    --cc=kees@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liuhangbin@gmail.com \
    --cc=lukma@denx.de \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=xiaoliang.yang_1@nxp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.