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.liu@xxxxxxxxxx> > > Acked-by: Oliver Hartkopp <socketcan@xxxxxxxxxxxx> > > 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;