Messages in this thread | | | Date | Sun, 22 Jun 2008 18:47:17 +0200 | From | Marcin Slusarz <> | Subject | oops in Audiowerk2 ALSA driver |
| |
Hi There's a race between registration routine and interrupt handler in aw2 driver which manifested as oops on some box [1].
When snd_aw2_create calls request_irq chip data are not yet fully initialized. If interrupt raises before snd_aw2_create call snd_aw2_saa7146_setup, driver may oops or read/write other port than its own. (chip->base_addr is initialized in snd_aw2_saa7146_setup, but is used in snd_aw2_saa7146_interrupt via READREG/WRITEREG)
The simple fix would be to move call to snd_aw2_saa7146_setup before request_irq, but snd_aw2_saa7146_setup enables interrupts...
PS: I don't have this hardware.
Marcin
[1] http://kerneloops.org/guilty.php?guilty=snd_aw2_saa7146_interrupt&version=2.6.26-rc&start=1703936&end=1736703&class=oops
| |