mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-19 16:14:13 +08:00
ipw2x00: remove the right /proc/net entry
Commit 27ae60f8f7
("ipw2x00: replace "ieee80211" with "libipw" where
appropriate") changed DRV_NAME to be "libipw", but didn't properly fix
up the places where it was used to specify the name for the /proc/net/
directory.
For backwards compatibility reasons, that directory name remained
"ieee80211", but due to the DRV_NAME change, the error case printouts
and the cleanup functions now used "libipw" instead. Which made it all
fail badly.
For example, on module unload as reported by Randy:
WARNING: at fs/proc/generic.c:816 remove_proc_entry+0x156/0x35e()
name 'libipw'
because it's trying to unregister a /proc directory that obviously
doesn't even exist.
Clean it all up to use DRV_PROCNAME for the actual /proc directory name.
Reported-and-tested-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Pavel Roskin <proski@gnu.org>
Cc: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d4285bd6be
commit
151f52f09c
@ -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…
Reference in New Issue
Block a user