From: Zhang Rui Print a warning if PDE is registered with a name which already exists in target directory. Bug report and a simple fix can be found here: http://bugzilla.kernel.org/show_bug.cgi?id=8798 [\n fixlet and no undescriptive variable usage --adobriyan] Signed-off-by: Zhang Rui Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton --- fs/proc/generic.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff -puN fs/proc/generic.c~proc-detect-duplicate-names-on-registration fs/proc/generic.c --- a/fs/proc/generic.c~proc-detect-duplicate-names-on-registration +++ a/fs/proc/generic.c @@ -518,6 +518,7 @@ static const struct inode_operations pro static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp) { unsigned int i; + struct proc_dir_entry *tmp; i = get_inode_number(); if (i == 0) @@ -536,6 +537,15 @@ static int proc_register(struct proc_dir } spin_lock(&proc_subdir_lock); + + for (tmp = dir->subdir; tmp; tmp = tmp->next) + if (strcmp(tmp->name, dp->name) == 0) { + printk(KERN_WARNING "PDE '%s' already registered\n", + dp->name); + dump_stack(); + break; + } + dp->next = dir->subdir; dp->parent = dir; dir->subdir = dp; _