• T
    ALSA: timer: Fix negative queue usage by racy accesses · 3fa6993f
    Takashi Iwai 提交于
    The user timer tu->qused counter may go to a negative value when
    multiple concurrent reads are performed since both the check and the
    decrement of tu->qused are done in two individual locked contexts.
    This results in bogus read outs, and the endless loop in the
    user-space side.
    
    The fix is to move the decrement of the tu->qused counter into the
    same spinlock context as the zero-check of the counter.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: NTakashi Iwai <tiwai@suse.de>
    3fa6993f
timer.c 52.6 KB