[PATCH 6/9] net: dsa: enable master promisc mode if available and needed

Ramon Fried rfried.dev at gmail.com
Fri Jul 2 11:47:12 CEST 2021


On Thu, Jul 1, 2021 at 2:50 AM Tim Harvey <tharvey at gateworks.com> wrote:
>
> If ports have their own unique MAC addrs and master has a set_promisc
> function, call it so that packets will be received for ports.
>
> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
> ---
>  net/dsa-uclass.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/net/dsa-uclass.c b/net/dsa-uclass.c
> index 7ea1cb6949..694664d81b 100644
> --- a/net/dsa-uclass.c
> +++ b/net/dsa-uclass.c
> @@ -277,8 +277,15 @@ static int dsa_port_probe(struct udevice *pdev)
>          * has a unique MAC address specified in the environment.
>          */
>         eth_env_get_enetaddr_by_index("eth", dev_seq(pdev), env_enetaddr);
> -       if (!is_zero_ethaddr(env_enetaddr))
> +       if (!is_zero_ethaddr(env_enetaddr)) {
> +               /* individual port mac addrs require master to be promisc */
> +               struct eth_ops *eth_ops = eth_get_ops(master);
> +
> +               if (eth_ops->set_promisc)
> +                       eth_ops->set_promisc(master, 1);
> +
>                 return 0;
> +       }
>
>         master_pdata = dev_get_plat(master);
>         eth_pdata = dev_get_plat(pdev);
> --
> 2.17.1
>
Reviewed-by: Ramon Fried <rfried.dev at gmail.com>


More information about the U-Boot mailing list