oops in Audiowerk2 ALSA driver

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Marcin Slusarz
Date: Sunday, June 22, 2008 - 9:47 am

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&st...
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
oops in Audiowerk2 ALSA driver, Marcin Slusarz, (Sun Jun 22, 9:47 am)
Re: oops in Audiowerk2 ALSA driver, Takashi Iwai, (Mon Jun 23, 5:18 am)