Feature #3338
Updated by Ilya Shchepetkov almost 12 years ago
You mast call unregister_netdev() for already registered device, free_netdev() is not enough.
<pre>
The proper rollback is to call unregister_netdevice, not free_netdev.
Otherwise - kernel BUG at net/core/dev.c:4057!
</pre>
Example of bug:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=822973ba79fd5a5b711270c2de7196c6b50c6687
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=38bddf04bcfe661fbdab94888c3b72c32f6873b3
<pre>
Freeing netdev without free_netdev() leads to net, tx leaks.
It might lead to dereferencing freed pointer.
</pre>
Example of bug:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=b37e0c619dc231f292ed199f50c18f5bf508e16d