On Fri, 2007-03-09 at 21:44 -0500, Dmitry Torokhov wrote:
> On Friday 09 March 2007 19:29, Pete Zaitcev wrote:
> > > +/* Activity checking thread. If a sufficient period of inactivity is 
> > > detected, 
> > > +   the tablet's proximity is reset. */
> > > +static void activity_check(unsigned long data)
> > > +{
> > > +     struct aiptek *aiptek = (struct aiptek *) data;
> > > +
> > > +     /* This timer is set *after* handling input for the table, and
> > > +        cleared *before* handling it. Am guessing that we never run
> > > +        concurrently the module code. */
> > > +
> > > +     /* info("aiptek: timeout proximity\n"); */
> > > +
> > > +     /* apparently over-due. Reset the misc key, no tool, no proximity */
> > > +     input_report_abs(aiptek->inputdev, ABS_MISC, 0);
> > > +     input_sync(aiptek->inputdev);
> > > +}
> > 
> > This concerns me a bit. I am not 100% sure that input_sync and friends
> > are safe to run from several CPUs. Usually, nobody is bitten by this,
> > because they are delivered from a single IRQ. If you start doing this
> > from a timer, it's not longer true. Dmitry must bless this practice
> > (cc-ed). Perhas you want a spinlock here.
> > 
> 
> I want to fix locking in input handlers so concurrent execution of
> ->event() methods is not an issue. However there will be a question
> of correctness of the sequence in what events are delivered so some
> kind of locking in drivers themselves still may make sense. 

The timer is removed before the routine that handles the tablet data
(aiptek_irq) starts sending its own data with input_sync and friends. So
this should not produce any problem. 

I will change the del_timer to del_timer_sync, to remove the race where
the timer´s activity is running while the timer is being removed.

Does that sound reasonable?

René
###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.f-secure.com/

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to