From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: 2.5.50: sleeping function called from illegal context Date: Wed, 04 Dec 2002 16:41:55 +0100 Sender: alsa-devel-admin@lists.sourceforge.net Message-ID: References: <3DE3F32200B4A5E8@mel-rti20.wanadoo.fr> <200212031321.41585.baldrick@wanadoo.fr> Mime-Version: 1.0 (generated by SEMI 1.14.4 - "Hosorogi") Content-Type: text/plain; charset=US-ASCII Return-path: In-Reply-To: <200212031321.41585.baldrick@wanadoo.fr> Errors-To: alsa-devel-admin@lists.sourceforge.net List-Help: List-Post: List-Subscribe: , List-Unsubscribe: , List-Archive: To: Duncan Sands Cc: Paul Davis , alsa-devel@lists.sourceforge.net List-Id: alsa-devel@alsa-project.org At Tue, 3 Dec 2002 13:21:41 +0100, Duncan Sands wrote: > > On Tuesday 03 December 2002 19:34, Paul Davis wrote: > > >I guess another way of dealing with this kind of problem is to use a > > >semaphore rather than a spinlock, and a workqueue: when the interrupt > > >comes in, the call to snd_ctl_notify is put on the queue, where it will > > > later be run in process context, and can safely take the semaphore. > > > > can i get a pointer to some code that does this? we need to do this > > for handling MIDI I/O in the hammerfall dsp driver. doing it from > > the interrupt handler causes audio dropouts because the midi i/o is so > > much slower. > > For the use of workqueues (introduced in 2.5), see > http://lwn.net/Articles/11360/ > and > http://lwn.net/Articles/10963/ thanks for pointers! i believe the tasklet would be enough for a task like the midi handler, too. regarding to the workqueue, it can be used for a new stuff to shutdown the module asynchronously for hotplug, which Jaroslav added recently. the current implementation is invoking a kernel thread directly. with the workqueue, the code would be much simpler (although there is another issue for compatibility with older kernels :) Takashi ------------------------------------------------------- This SF.net email is sponsored by: Microsoft Visual Studio.NET comprehensive development tool, built to increase your productivity. Try a free online hosted session at: http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en