On Thu, Nov 03, 2022 at 02:13:47PM +0100, Oleksij Rempel wrote:
> Typical use case for DSA framework on barebox a port multiplexer. This
> means, we mostly have different MAC addresses on each port. To make this
> work, we need to enable promiscuous mode on the master Ethernet
> controller.
> 
> With this patch, promiscuous mode will be enabled automatically, as soon
> as at least one switch port is enabled and this mode will be disabled
> after all switch ports are disabled as well.
> 
> Signed-off-by: Oleksij Rempel <[email protected]>
> ---
>  drivers/net/dsa.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/dsa.c b/drivers/net/dsa.c
> index 040ba897e2..14ef8f4c4f 100644
> --- a/drivers/net/dsa.c
> +++ b/drivers/net/dsa.c
> @@ -129,6 +129,7 @@ static int dsa_port_start(struct eth_device *edev)
>                               return ret;
>               }
>  
> +             eth_set_promiscuous_mode(ds->edev_master, true);
>               eth_open(ds->edev_master);
>       }
>  
> @@ -160,6 +161,7 @@ static void dsa_port_stop(struct eth_device *edev)
>                       ops->port_disable(dpc, ds->cpu_port,
>                                       ds->cpu_port_fixed_phy);
>  
> +             eth_set_promiscuous_mode(ds->edev_master, false);

Please check the error code. When eth_set_promiscuous_mode() is not
implemented for the current ethernet device we should notice the user.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Reply via email to