On Wed, 21 Oct 2020 13:20:16 +0200 Oliver Hartkopp wrote:
> On 21.10.20 07:21, Dinghao Liu wrote:
> > When rtnl_configure_link() fails, peer needs to be
> > freed just like when register_netdevice() fails.
> > 
> > Signed-off-by: Dinghao Liu <dinghao....@zju.edu.cn>  
> 
> Acked-by: Oliver Hartkopp <socket...@hartkopp.net>
> 
> Btw. as the vxcan.c driver bases on veth.c the same issue can be found 
> there!
> 
> At this point:
> https://elixir.bootlin.com/linux/latest/source/drivers/net/veth.c#L1398
> 
> err_register_dev:
>          /* nothing to do */
> err_configure_peer:
>          unregister_netdevice(peer);
>          return err; <<<<<<<<<<<<<<<<<<<<<<<
> 
> err_register_peer:
>          free_netdev(peer);
>          return err;
> }
> 
> IMO the return must be removed to fall through the next label and free 
> the netdevice too.
> 
> Would you like so send a patch for veth.c too?

Ah, this is where Liu Dinghao got the veth suggestion :)

Does vxcan actually need this patch?

static void vxcan_setup(struct net_device *dev)
{
        [...]
        dev->needs_free_netdev  = true;

Reply via email to