Subject: Re: [patch 4/4] mISDN: misc timerdev fixes

From: Andrew Morton <[email-masked]>
Date: Tue, 23 Sep 2008 10:31:40 -0700

On Tue, 23 Sep 2008 14:00:30 +0200 Karsten Keil <[email-masked]> wrote:

> On Tue, Sep 23, 2008 at 07:45:34AM -0400, Christoph Hellwig wrote:
> > On Tue, Sep 23, 2008 at 04:30:05AM -0700, Andrew Morton wrote:
> > > so.. this?
> > 
> > Much better.
> > 
> > > --- 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?
> 
> This version only makes the programing of upper ISDN layers easier,
> you only need to watch /dev/mISDNtimer together with the sockets in one
> select call.

sys_timerfd_create() can do this?

> The next version will have a option to synchronise the timer with
> the ISDN hardware clock which would avoid additional jitter if you need to
> bridge channels in software.

hrm.  If that's really really useful and actually works then I guess it
might then be justifiable.