Re: [patch 4/4] mISDN: misc timerdev fixes
From: Christoph Hellwig <hch@infradead.org>
Date: 2008-09-23 11:45:58
On Tue, Sep 23, 2008 at 04:30:05AM -0700, Andrew Morton wrote:
so.. this?
Much better.
quoted hunk ↗ jump to hunk
--- a/drivers/isdn/mISDN/timerdev.c~misdn-misc-timerdev-fixes-fix +++ a/drivers/isdn/mISDN/timerdev.c@@ -61,7 +61,7 @@ mISDN_open(struct inode *ino, struct fil init_waitqueue_head(&dev->wait); filep->private_data = dev; __module_get(THIS_MODULE); - return 0; + return nonseekable_open(ino, filep);
But this also shows that mISDN is kinda stuck in a different century. Doing __module_get(THIS_MODULE) at the end of ->open is utterly racy, it really needs to set a owner field in file_operations and rip this cruft out. Btw, can anyone explain WTF this timerdev module is doing? It's not using any functionality from the rest of mISDN, it's not exporting any functionality to it either but just provides a really awkward way to expose dumb timers to userspace. What does it provide that the normal timer syscalls can't provide?