lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 5 Jul 2022 20:12:26 +0200
From:   Horatiu Vultur <horatiu.vultur@...rochip.com>
To:     Michael Walle <michael@...le.cc>
CC:     "David S . Miller" <davem@...emloft.net>,
        Eric Dumazet <edumazet@...gle.com>,
        Jakub Kicinski <kuba@...nel.org>,
        Paolo Abeni <pabeni@...hat.com>,
        Vladimir Oltean <olteanv@...il.com>, <netdev@...r.kernel.org>,
        <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH net v2] net: lan966x: hardcode the number of external
 ports

The 07/04/2022 17:36, Michael Walle wrote:
> 
> Instead of counting the child nodes in the device tree, hardcode the
> number of ports in the driver itself.  The counting won't work at all
> if an ethernet port is marked as disabled, e.g. because it is not
> connected on the board at all.
> 
> It turns out that the LAN9662 and LAN9668 use the same switching IP
> with the same synthesis parameters. The only difference is that the
> output ports are not connected. Thus, we can just hardcode the
> number of physical ports to 8.
> 
> Fixes: db8bcaad5393 ("net: lan966x: add the basic lan966x driver")
> Signed-off-by: Michael Walle <michael@...le.cc>

Reviewed-by: Horatiu Vultur <horatiu.vultur@...rochip.com>

> ---
> changes since v1:
>  - add fixes tag since the fix is simple
>  - switch from new specific compatible to "just use 8 for all"
> 
>  drivers/net/ethernet/microchip/lan966x/lan966x_main.c | 8 ++------
>  drivers/net/ethernet/microchip/lan966x/lan966x_main.h | 1 +
>  2 files changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
> index 5784c4161e5e..1d6e3b641b2e 100644
> --- a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
> +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
> @@ -994,7 +994,7 @@ static int lan966x_probe(struct platform_device *pdev)
>         struct fwnode_handle *ports, *portnp;
>         struct lan966x *lan966x;
>         u8 mac_addr[ETH_ALEN];
> -       int err, i;
> +       int err;
> 
>         lan966x = devm_kzalloc(&pdev->dev, sizeof(*lan966x), GFP_KERNEL);
>         if (!lan966x)
> @@ -1025,11 +1025,7 @@ static int lan966x_probe(struct platform_device *pdev)
>         if (err)
>                 return dev_err_probe(&pdev->dev, err, "Reset failed");
> 
> -       i = 0;
> -       fwnode_for_each_available_child_node(ports, portnp)
> -               ++i;
> -
> -       lan966x->num_phys_ports = i;
> +       lan966x->num_phys_ports = NUM_PHYS_PORTS;
>         lan966x->ports = devm_kcalloc(&pdev->dev, lan966x->num_phys_ports,
>                                       sizeof(struct lan966x_port *),
>                                       GFP_KERNEL);
> diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_main.h b/drivers/net/ethernet/microchip/lan966x/lan966x_main.h
> index 3b86ddddc756..2787055c1847 100644
> --- a/drivers/net/ethernet/microchip/lan966x/lan966x_main.h
> +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_main.h
> @@ -34,6 +34,7 @@
>  /* Reserved amount for (SRC, PRIO) at index 8*SRC + PRIO */
>  #define QSYS_Q_RSRV                    95
> 
> +#define NUM_PHYS_PORTS                 8
>  #define CPU_PORT                       8
> 
>  /* Reserved PGIDs */
> --
> 2.30.2
> 

-- 
/Horatiu

Powered by blists - more mailing lists