mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	libipw: fix proc entry removal
This bug seems to be due to commit 27ae60f8f7 ("ipw2x00: replace
"ieee80211" with "libipw" where appropriate"), where Pavel did this:
-       libipw_proc = proc_mkdir(DRV_NAME, init_net.proc_net);
+       libipw_proc = proc_mkdir("ieee80211", init_net.proc_net);
but then the cleanup was kept as
        remove_proc_entry(DRV_NAME, init_net.proc_net);
in both places (both in the failure case and in the unload case). The
error string is also total crap, and says
     "Unable to create " DRV_NAME " proc directory\n");
Even though it doesn't actually create a proc directory named DRV_NAME at all.
So that patch looks like total and utter crap to me. The commit message says
  "Keep /proc/net/ieee80211 under the original name to avoid breaking user
    interface."
but the thing is, it really didn't fix anything but that one create
thing. It needs to fix all the other cases too.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tested-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
			
			
This commit is contained in:
		
							parent
							
								
									9f2a0fac62
								
							
						
					
					
						commit
						269e2d77b8
					
				
					 1 changed files with 5 additions and 4 deletions
				
			
		|  | @ -54,6 +54,7 @@ | |||
| 
 | ||||
| #define DRV_DESCRIPTION "802.11 data/management/control stack" | ||||
| #define DRV_NAME        "libipw" | ||||
| #define DRV_PROCNAME	"ieee80211" | ||||
| #define DRV_VERSION	LIBIPW_VERSION | ||||
| #define DRV_COPYRIGHT   "Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>" | ||||
| 
 | ||||
|  | @ -293,16 +294,16 @@ static int __init libipw_init(void) | |||
| 	struct proc_dir_entry *e; | ||||
| 
 | ||||
| 	libipw_debug_level = debug; | ||||
| 	libipw_proc = proc_mkdir("ieee80211", init_net.proc_net); | ||||
| 	libipw_proc = proc_mkdir(DRV_PROCNAME, init_net.proc_net); | ||||
| 	if (libipw_proc == NULL) { | ||||
| 		LIBIPW_ERROR("Unable to create " DRV_NAME | ||||
| 		LIBIPW_ERROR("Unable to create " DRV_PROCNAME | ||||
| 				" proc directory\n"); | ||||
| 		return -EIO; | ||||
| 	} | ||||
| 	e = proc_create("debug_level", S_IRUGO | S_IWUSR, libipw_proc, | ||||
| 			&debug_level_proc_fops); | ||||
| 	if (!e) { | ||||
| 		remove_proc_entry(DRV_NAME, init_net.proc_net); | ||||
| 		remove_proc_entry(DRV_PROCNAME, init_net.proc_net); | ||||
| 		libipw_proc = NULL; | ||||
| 		return -EIO; | ||||
| 	} | ||||
|  | @ -319,7 +320,7 @@ static void __exit libipw_exit(void) | |||
| #ifdef CONFIG_LIBIPW_DEBUG | ||||
| 	if (libipw_proc) { | ||||
| 		remove_proc_entry("debug_level", libipw_proc); | ||||
| 		remove_proc_entry(DRV_NAME, init_net.proc_net); | ||||
| 		remove_proc_entry(DRV_PROCNAME, init_net.proc_net); | ||||
| 		libipw_proc = NULL; | ||||
| 	} | ||||
| #endif				/* CONFIG_LIBIPW_DEBUG */ | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Linus Torvalds
						Linus Torvalds