codec->read_mixer = ac97_read_mixer; //can be called holding spinlock
codec->write_mixer = ac97_write_mixer; //can be called holding spinlock
codec->recmask_io = ac97_recmask_io;
codec->mixer_ioctl = ac97_mixer_ioctl; //in general can't be called
and ac97_mixer_ioctl() itself calls ac97_read/write_mixer().
A semaphore on the mixer device open function would do just fine If I
didn't had an interrupt handler also touching the ac97_codec...
> On Tue, 9 Oct 2001, Rui Sousa wrote:
> > Actually there is no locking implemented for the ac97 codec mixer.
> > It never seemed worth it, even if there are potential races in the code.
> > To have two applications accessing the mixer at the same time is a _very_
> > rare condition and the worse that can happen is to set a wrong volume
> > value. Anyway, I will give it another look and try to come up with a fix.
> I have a patch in the wings which adds locking to mixer accesses, for
> via82cxxx_audio, because the lack of locking was causing problems. So,
> some people with some apps do indeed notice...
> Emu10k1-devel mailing list
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/