71ee59f2d8
commit 0ad646c81b2182f7fa67ec0c8c825e0ee165696d upstream.
register_netdevice() could fail early when we have an invalid
dev name, in which case ->ndo_uninit() is not called. For tun
device, this is a problem because a timer etc. are already
initialized and it expects ->ndo_uninit() to clean them up.
We could move these initializations into a ->ndo_init() so
that register_netdevice() knows better, however this is still
complicated due to the logic in tun_detach().
Therefore, I choose to just call dev_get_valid_name() before
register_netdevice(), which is quicker and much easier to audit.
And for this specific case, it is already enough.
Fixes:
|
||
---|---|---|
.. | ||
appletalk | ||
arcnet | ||
bonding | ||
caif | ||
can | ||
cris | ||
danipc | ||
dsa | ||
ethernet | ||
fddi | ||
hamradio | ||
hippi | ||
hyperv | ||
ieee802154 | ||
irda | ||
phy | ||
plip | ||
ppp | ||
slip | ||
team | ||
usb | ||
vmxnet3 | ||
wan | ||
wimax | ||
wireless | ||
xen-netback | ||
Kconfig | ||
LICENSE.SRC | ||
Makefile | ||
Space.c | ||
dummy.c | ||
eql.c | ||
ifb.c | ||
loopback.c | ||
macvlan.c | ||
macvtap.c | ||
mdio.c | ||
mii.c | ||
netconsole.c | ||
ntb_netdev.c | ||
rionet.c | ||
sb1000.c | ||
sungem_phy.c | ||
tun.c | ||
veth.c | ||
virtio_net.c | ||
vxlan.c | ||
xen-netfront.c |