Subject: Re: atl1c drivers run 'napi/eth%d-385' named threads with unsubstituted %d

From: Andrew Lunn <[email-masked]>
Date: Sat, 22 Jan 2022 16:54:45 +0100

> Thank you Andrew! I used this second version of your patch
> against 5.16.1 and it seems to work:
> 
>     $ sudo ping -f 172.16.0.1
> 
>     613 root 20 0 0 0 0 S 11.0 0.0 0:07.46 napi/eth0-385
>     614 root 20 0 0 0 0 R  5.3 0.0 0:03.96 napi/eth0-386
> 
> Posting used diff as is just in case:
> 
> Tested-by: Sergei Trofimovich <[email-masked]>

Great, thanks for testing.

> 
> --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
> +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
> @@ -2706,6 +2706,15 @@ static int atl1c_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  		goto err_alloc_etherdev;
>  	}
> 
> +	if (rtnl_lock_killable()) {
> +		err = -EINTR;
> +		goto err_init_netdev;
> +	}
> +	err = dev_alloc_name(netdev, netdev->name);
> +	rtnl_unlock();
> +	if (err < 0)
> +		goto err_init_netdev;

Since there are multiple users of dev_alloc_name() and it appears some
get locking wrong, it makes sense to add a helper in the code which
does the locking. So i will work on a patchset to add such a helper
and convert other drivers.

    Andrew