aboutsummaryrefslogtreecommitdiff
path: root/sound/drivers/opl3
AgeCommit message (Collapse)Author
2009-10-08ALSA: opl3: circular locking in the snd_opl3_note_on() and snd_opl3_note_off()Krzysztof Helt
Fix following circular locking in the opl3 driver. ======================================================= [ INFO: possible circular locking dependency detected ] 2.6.32-rc3 #87 ------------------------------------------------------- swapper/0 is trying to acquire lock: (&opl3->voice_lock){..-...}, at: [<cca748fe>] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth] but task is already holding lock: (&opl3->sys_timer_lock){..-...}, at: [<cca75169>] snd_opl3_timer_func+0x19/0xc0 [snd_opl3_synth] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&opl3->sys_timer_lock){..-...}: [<c02461d5>] validate_chain+0xa25/0x1040 [<c0246aca>] __lock_acquire+0x2da/0xab0 [<c024731a>] lock_acquire+0x7a/0xa0 [<c044c300>] _spin_lock_irqsave+0x40/0x60 [<cca75046>] snd_opl3_note_on+0x686/0x790 [snd_opl3_synth] [<cca68912>] snd_midi_process_event+0x322/0x590 [snd_seq_midi_emul] [<cca74245>] snd_opl3_synth_event_input+0x15/0x20 [snd_opl3_synth] [<cca4dcc0>] snd_seq_deliver_single_event+0x100/0x200 [snd_seq] [<cca4de07>] snd_seq_deliver_event+0x47/0x1f0 [snd_seq] [<cca4e50b>] snd_seq_dispatch_event+0x3b/0x140 [snd_seq] [<cca5008c>] snd_seq_check_queue+0x10c/0x120 [snd_seq] [<cca5037b>] snd_seq_enqueue_event+0x6b/0xe0 [snd_seq] [<cca4e0fd>] snd_seq_client_enqueue_event+0xdd/0x100 [snd_seq] [<cca4eb7a>] snd_seq_write+0xea/0x190 [snd_seq] [<c02827b6>] vfs_write+0x96/0x160 [<c0282c9d>] sys_write+0x3d/0x70 [<c0202c45>] syscall_call+0x7/0xb -> #0 (&opl3->voice_lock){..-...}: [<c02467e6>] validate_chain+0x1036/0x1040 [<c0246aca>] __lock_acquire+0x2da/0xab0 [<c024731a>] lock_acquire+0x7a/0xa0 [<c044c300>] _spin_lock_irqsave+0x40/0x60 [<cca748fe>] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth] [<cca751f0>] snd_opl3_timer_func+0xa0/0xc0 [snd_opl3_synth] [<c022ac46>] run_timer_softirq+0x166/0x1e0 [<c02269e8>] __do_softirq+0x78/0x110 [<c0226ac6>] do_softirq+0x46/0x50 [<c0226e26>] irq_exit+0x36/0x40 [<c0204bd2>] do_IRQ+0x42/0xb0 [<c020328e>] common_interrupt+0x2e/0x40 [<c021092f>] apm_cpu_idle+0x10f/0x290 [<c0201b11>] cpu_idle+0x21/0x40 [<c04443cd>] rest_init+0x4d/0x60 [<c055c835>] start_kernel+0x235/0x280 [<c055c066>] i386_start_kernel+0x66/0x70 other info that might help us debug this: 2 locks held by swapper/0: #0: (&opl3->tlist){+.-...}, at: [<c022abd0>] run_timer_softirq+0xf0/0x1e0 #1: (&opl3->sys_timer_lock){..-...}, at: [<cca75169>] snd_opl3_timer_func+0x19/0xc0 [snd_opl3_synth] stack backtrace: Pid: 0, comm: swapper Not tainted 2.6.32-rc3 #87 Call Trace: [<c0245188>] print_circular_bug+0xc8/0xd0 [<c02467e6>] validate_chain+0x1036/0x1040 [<c0247f14>] ? check_usage_forwards+0x54/0xd0 [<c0246aca>] __lock_acquire+0x2da/0xab0 [<c024731a>] lock_acquire+0x7a/0xa0 [<cca748fe>] ? snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth] [<c044c300>] _spin_lock_irqsave+0x40/0x60 [<cca748fe>] ? snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth] [<cca748fe>] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth] [<c044c307>] ? _spin_lock_irqsave+0x47/0x60 [<cca751f0>] snd_opl3_timer_func+0xa0/0xc0 [snd_opl3_synth] [<c022ac46>] run_timer_softirq+0x166/0x1e0 [<c022abd0>] ? run_timer_softirq+0xf0/0x1e0 [<cca75150>] ? snd_opl3_timer_func+0x0/0xc0 [snd_opl3_synth] [<c02269e8>] __do_softirq+0x78/0x110 [<c044c0fd>] ? _spin_unlock+0x1d/0x20 [<c025915f>] ? handle_level_irq+0xaf/0xe0 [<c0226ac6>] do_softirq+0x46/0x50 [<c0226e26>] irq_exit+0x36/0x40 [<c0204bd2>] do_IRQ+0x42/0xb0 [<c024463c>] ? trace_hardirqs_on_caller+0x12c/0x180 [<c020328e>] common_interrupt+0x2e/0x40 [<c0208d88>] ? default_idle+0x38/0x50 [<c021092f>] apm_cpu_idle+0x10f/0x290 [<c0201b11>] cpu_idle+0x21/0x40 [<c04443cd>] rest_init+0x4d/0x60 [<c055c835>] start_kernel+0x235/0x280 [<c055c210>] ? unknown_bootoption+0x0/0x210 [<c055c066>] i386_start_kernel+0x66/0x70 Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-05-29ALSA: clean up the logic for building sequencer modulesMichal Marek
Instead of mangling the CONFIG_* variables in the makefiles over and over, set a few helper variables in Kconfig. Signed-off-by: Michal Marek <mmarek@suse.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-05ALSA: Add missing KERN_* prefix to printk in sound/driversTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-08-13ALSA: Kill snd_assert() in other placesTakashi Iwai
Kill snd_assert() in other places, either removed or replaced with if () with snd_BUG_ON(). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-02-22[ALSA] opl3 - Fix compilation without sequencer supportTakashi Iwai
Add proper ifdef's to the patch loading code moved from the old instr layer so that opl3 driver can be compiled without the sequencer support. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-31[ALSA] opl3 - Fix build errorsTakashi Iwai
I applied a wrong patch for 'opl3 - simplify exclusive access lock'. Fixed now. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] opl3 - simplify exclusive access lockTakashi Iwai
Use the exclusive access lock in hwdep instead of the own one. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] opl3 - Use hwdep for patch loadingTakashi Iwai
Use the hwdep device for loading OPL2/3 patch data instead of the messy sequencer instrument layer. Due to this change, the sbiload program should be updated, too. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2007-10-19Fix misspellings of "system", "controller", "interrupt" and "necessary".Robert P. J. Day
Fix the various misspellings of "system", controller", "interrupt" and "[un]necessary". Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Adrian Bunk <bunk@kernel.org>
2007-10-16[ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.czJaroslav Kysela
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2007-10-16[ALSA] Clean up MakefileTakashi Iwai
Clean up Makefile using xxx- style instead of ifeq(CONFIG_XXX,y). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-06-22[ALSA] add more sequencer port type information bitsClemens Ladisch
Add four new information flags SNDRV_SEQ_PORT_TYPE_HARDWARE, _SOFTWARE, _SYNTHESIZER, _PORT for sequencer ports. This makes it easier for apps like Rosegarden to make policy decisions based on the port type. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-06-22[ALSA] fix port type bitsClemens Ladisch
Fix the port information about non-MIDI messages that had wrong values for some OPL3 and EmuX ports. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-06-22[ALSA] opl3 - Move EXPORT_SYMBOL() to adjacent to each functionTakashi Iwai
Move EXPORT_SYMBOL() to adjacent to each exported function/variable. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22[ALSA] Fix use after free in opl3_seq and opl3_ossDave Jones
Modules: OPL3 Don't read from free'd memory. Also make use of the return value, and don't register the device if something went wrong creating the port. Coverity #954, #955 Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22[ALSA] semaphore -> mutex (driver part)Ingo Molnar
Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-02-24[PATCH] alsa: fix bogus snd_device_free() in opl3-oss.cTakashi Iwai
Remove snd_device_free() for an opl3-oss instance which should have been released. Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: Jaroslav Kysela <perex@suse.cz> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-04[ALSA] opl3 - Fix the unreleased resourcesTakashi Iwai
Modules: OPL3 Fix the unreleased resources in the error path of snd_opl3_create(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03[ALSA] seq: set client name in snd_seq_create_kernel_client()Clemens Ladisch
All users of snd_seq_create_kernel_client() have to set the client name anyway, so we can just pass the name as parameter. This relieves us from having to muck around with a struct snd_seq_client_info in these cases. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03[ALSA] seq: remove struct snd_seq_client_callbackClemens Ladisch
The fields of struct snd_seq_client_callback either aren't used or are always set to the same value, so we can get rid of it altogether. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03[ALSA] Fix possible races in timer callbacksTakashi Iwai
Fix possible races in timer callbacks. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03[ALSA] Add error messagesTakashi Iwai
Add error messages in the critial error path to be more verbose. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03[ALSA] Remove xxx_t typedefs: OPL3Takashi Iwai
Modules: OPL3,Raw OPL FM Remove xxx_t typedefs from the OPL3 driver Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04[ALSA] Remove vmalloc wrapper, kfree_nocheck()Takashi Iwai
- Remove vmalloc wrapper - Add release_and_free_resource() to remove kfree_nocheck() from each driver and simplify the code Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-09-12[ALSA] Replace with kzalloc() - othersTakashi Iwai
Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3 OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers AK4114 receiver,AK4117 receiver,PDAudioCF driver,PPC PMAC driver SPARC AMD7930 driver,SPARC cs4231 driver,Synth,Common EMU synth USB generic driver,USB USX2Y Replace kcalloc(1,..) with kzalloc(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-04-16Linux-2.6.12-rc2Linus Torvalds
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!