Project

General

Profile

Feature #3338

Updated by Ilya Shchepetkov about 11 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

Back