* Two identical entries for "rtc" in /proc/devices @ 2007-09-06 22:23 Chuck Ebbert 2007-09-15 7:44 ` Andrew Morton 0 siblings, 1 reply; 5+ messages in thread From: Chuck Ebbert @ 2007-09-06 22:23 UTC (permalink / raw) To: linux-kernel; +Cc: David Brownell # ls -li total 0 4026532007 -r--r--r-- 1 root root 0 Sep 6 18:18 nvram 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc 4026532056 -rw-r--r-- 1 root root 0 Sep 6 18:18 snd-page-alloc kernel 2.6.22.6 on a Dell Precision 390: # CONFIG_RTC is not set # CONFIG_RTC_DEBUG is not set CONFIG_GEN_RTC=y CONFIG_GEN_RTC_X=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set CONFIG_RTC_DRV_CMOS=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1672=m CONFIG_RTC_DRV_DS1742=m # CONFIG_RTC_DRV_EP93XX is not set CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_MAX6900=m # CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_RS5C372=m # CONFIG_RTC_DRV_SA1100 is not set # CONFIG_RTC_DRV_TEST is not set CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_V3020=m CONFIG_HPET_EMULATE_RTC=y CONFIG_EFI_RTC=y ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Two identical entries for "rtc" in /proc/devices 2007-09-06 22:23 Two identical entries for "rtc" in /proc/devices Chuck Ebbert @ 2007-09-15 7:44 ` Andrew Morton 2007-09-15 18:50 ` David Brownell 0 siblings, 1 reply; 5+ messages in thread From: Andrew Morton @ 2007-09-15 7:44 UTC (permalink / raw) To: Chuck Ebbert; +Cc: linux-kernel, David Brownell On Thu, 06 Sep 2007 18:23:22 -0400 Chuck Ebbert <cebbert@redhat.com> wrote: > # ls -li > total 0 > 4026532007 -r--r--r-- 1 root root 0 Sep 6 18:18 nvram > 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc > 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc > 4026532056 -rw-r--r-- 1 root root 0 Sep 6 18:18 snd-page-alloc Next -mm has procfs-detect-duplicate-names.patch procfs-detect-duplicate-names-fix.patch procfs-detect-duplicate-names-fix-fix-2.patch which will at least tell us who the second offender is. I have a vague memory that this is due to selecting two different types of rtc in config. Perhaps a Kconfig fix is needed, dunno. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Two identical entries for "rtc" in /proc/devices 2007-09-15 7:44 ` Andrew Morton @ 2007-09-15 18:50 ` David Brownell 2007-09-16 5:10 ` Andrew Morton 0 siblings, 1 reply; 5+ messages in thread From: David Brownell @ 2007-09-15 18:50 UTC (permalink / raw) To: cebbert, akpm; +Cc: linux-kernel > On Thu, 06 Sep 2007 18:23:22 -0400 Chuck Ebbert <cebbert@redhat.com> wrote: > > > # ls -li > > total 0 > > 4026532007 -r--r--r-- 1 root root 0 Sep 6 18:18 nvram > > 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc > > 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc > > 4026532056 -rw-r--r-- 1 root root 0 Sep 6 18:18 snd-page-alloc > > Next -mm has > > procfs-detect-duplicate-names.patch > procfs-detect-duplicate-names-fix.patch > procfs-detect-duplicate-names-fix-fix-2.patch > > which will at least tell us who the second offender is. Semes pretty clear that this must be procfs itself... when a filesystem sees a name in a directory, it should refuse to make another file with the same name. And it should *never* reuse inode numbers... ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Two identical entries for "rtc" in /proc/devices 2007-09-15 18:50 ` David Brownell @ 2007-09-16 5:10 ` Andrew Morton 2007-09-19 5:21 ` David Brownell 0 siblings, 1 reply; 5+ messages in thread From: Andrew Morton @ 2007-09-16 5:10 UTC (permalink / raw) To: David Brownell; +Cc: cebbert, linux-kernel On Sat, 15 Sep 2007 11:50:21 -0700 David Brownell <david-b@pacbell.net> wrote: > > On Thu, 06 Sep 2007 18:23:22 -0400 Chuck Ebbert <cebbert@redhat.com> wrote: > > > > > # ls -li > > > total 0 > > > 4026532007 -r--r--r-- 1 root root 0 Sep 6 18:18 nvram > > > 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc > > > 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc > > > 4026532056 -rw-r--r-- 1 root root 0 Sep 6 18:18 snd-page-alloc > > > > Next -mm has > > > > procfs-detect-duplicate-names.patch > > procfs-detect-duplicate-names-fix.patch > > procfs-detect-duplicate-names-fix-fix-2.patch > > > > which will at least tell us who the second offender is. > > Semes pretty clear that this must be procfs itself... > when a filesystem sees a name in a directory, it should > refuse to make another file with the same name. And it > should *never* reuse inode numbers... > procfs can reject the attempt to create the file, but the bottom line is that two different callsites are trying to create the same file. One of those callsites needs fixing? ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Two identical entries for "rtc" in /proc/devices 2007-09-16 5:10 ` Andrew Morton @ 2007-09-19 5:21 ` David Brownell 0 siblings, 0 replies; 5+ messages in thread From: David Brownell @ 2007-09-19 5:21 UTC (permalink / raw) To: Andrew Morton; +Cc: cebbert, linux-kernel On Saturday 15 September 2007, Andrew Morton wrote: > On Sat, 15 Sep 2007 11:50:21 -0700 David Brownell <david-b@pacbell.net> wrote: > > > > On Thu, 06 Sep 2007 18:23:22 -0400 Chuck Ebbert <cebbert@redhat.com> wrote: > > > > > > > # ls -li > > > > total 0 > > > > 4026532007 -r--r--r-- 1 root root 0 Sep 6 18:18 nvram > > > > 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc > > > > 4026532067 -r--r--r-- 1 root root 0 Sep 6 18:18 rtc > > > > 4026532056 -rw-r--r-- 1 root root 0 Sep 6 18:18 snd-page-alloc > > > > > > ... > > > > Semes pretty clear that this must be procfs itself... > > when a filesystem sees a name in a directory, it should > > refuse to make another file with the same name. And it > > should *never* reuse inode numbers... > > ... > > procfs can reject the attempt to create the file, but the bottom line > is that two different callsites are trying to create the same file. One > of those callsites needs fixing? Both of those call sites have code to handle procfs rejecting the file creation; nothing to fix. And anyway, there's no way this is a *caller* bug! The missing step seems to be that proc_register() doesn't bother to check whether there's already an entry for that file. Which is what the appended *UNTESTED* patch does (it compiles though). - Dave --- g26.orig/fs/proc/generic.c 2007-09-18 22:08:44.000000000 -0700 +++ g26/fs/proc/generic.c 2007-09-18 22:14:07.000000000 -0700 @@ -521,10 +521,11 @@ static const struct inode_operations pro .setattr = proc_notify_change, }; -static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp) +static int proc_register(struct proc_dir_entry *dir, struct proc_dir_entry *dp) { unsigned int i; - + struct proc_dir_entry *de; + i = get_inode_number(); if (i == 0) return -EAGAIN; @@ -547,6 +548,16 @@ static int proc_register(struct proc_dir } spin_lock(&proc_subdir_lock); + + for (de = dir->subdir; de ; de = de->next) { + if (de->namelen != dp->namelen) + continue; + if (!memcmp(de->name, dp->name, de->namelen)) { + spin_unlock(&proc_subdir_lock); + return -EEXIST; + } + } + dp->next = dir->subdir; dp->parent = dir; dir->subdir = dp; ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-09-19 5:56 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-09-06 22:23 Two identical entries for "rtc" in /proc/devices Chuck Ebbert 2007-09-15 7:44 ` Andrew Morton 2007-09-15 18:50 ` David Brownell 2007-09-16 5:10 ` Andrew Morton 2007-09-19 5:21 ` David Brownell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox