On Thu, 13 Jun 2024 11:22:02 +0300
Omer Shpigelman <oshpigel...@habana.ai> wrote:

> +static int hbl_en_ports_reopen(struct hbl_aux_dev *aux_dev)
> +{
> +     struct hbl_en_device *hdev = aux_dev->priv;
> +     struct hbl_en_port *port;
> +     int rc = 0, i;
> +
> +     for (i = 0; i < hdev->max_num_of_ports; i++) {
> +             if (!(hdev->ports_mask & BIT(i)))
> +                     continue;
> +
> +             port = &hdev->ports[i];
> +
> +             /* It could be that the port was shutdown by 'ip link set down' 
> and there is no need
> +              * in reopening it.
> +              * Since we mark the ports as in reset even if they are 
> disabled, we clear the flag
> +              * here anyway.
> +              * See hbl_en_ports_stop_prepare() for more info.
> +              */
> +             if (!netif_running(port->ndev)) {
> +                     atomic_set(&port->in_reset, 0);
> +                     continue;
> +             }
> +

Rather than duplicating network device state in your own flags, it would be 
better to use
existing infrastructure. Read Documentation/networking/operstates.rst

Then you could also get rid of the kludge timer stuff in hbl_en_close().

Reply via email to