CPU0:
snd_trident_hw_free
    snd_trident_free_voice
            line 3870: spin_lock_irqsave()
            line 3881: voice->substream = NULL; [WRITE]
CPU1:
snd_trident_interrupt
    line 3798: snd_pcm_period_elapsed(voice->substream);  [READ]

As for voice->substream, the WRITE operation in CPU0 is performed
with holding a spinlock, but the READ operation in CPU1 is performed
without holding this spinlock, so there may exist a data race.


Best wishes,
Jia-Ju Bai

Reply via email to