> > > +static int extint_counter_open(struct inode *inode, struct file *filp)
> > > +{
> > > + struct extint_device *ed = file_to_extint_device(filp);
> > 
> > you don't need the file but just the inode (strictly speaking the cdev),
> > and doing this based on the file is rather confusing to the reader because
> > the struct file passed to ->open has just been allocated.
> 
> Perhaps I'm not following something here.
> 
> This behavior enables using poll/select to detect or wait for the
> external interrupt counter (which is per-device) to change.  The
> "has changed" status must be on a per-open basis, not a per-device
> basis, as seperate processes may read the counter at different times.

Sorry, the whole behaviour is complety fine.  I just don't thing the name
and calling convention of file_to_extint_device is optimal.  It should
take an struct inode * and be called just to_extint_device or someting.
The above would become

        struct extint_device *ed = to_extint_device(filp->f_dentry->d_inode);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to