On Thu, Jan 19, 2006 at 09:49:16AM +0000, Alan Cox wrote: > On Iau, 2006-01-19 at 00:58 -0600, Kumar Gala wrote: > > Since we can only open the watchdog once having a spinlock to protect > > multiple access is pointless. > > > > Signed-off-by: Kumar Gala <galak at kernel.crashing.org> > > NAK > > This is a common mistake. > > open is called on the open() call and is indeed in this case 'single > open', but file handles can be inherited and many users may have access > to a single file handle. > > eg > > f = open("/dev/watchdog", O_RDWR); > fork(); > while(1) { > write(f, "Boing", 5); > }
Oops. At least 50% of the watchdog drivers rely solely on the "wdt_is_open" atomic variable and are broken with respect to synchronization.