summaryrefslogtreecommitdiff
path: root/.config/git
AgeCommit message (Expand)AuthorFilesLines
2021-01-28Use include for signoff hook config rather than core.hooksPathTobias Klauser2-4/+4
2021-01-27Add missing with-signoff-hook config fileTobias Klauser1-0/+2
2021-01-27Add prepare-commit-msg hook depending on repoTobias Klauser3-0/+22
2021-01-27Add directory specific configurationTobias Klauser2-0/+4
;id=1d0f953086f090a022f2c0e1448300c15372db46'>1d0f953086f090a022f2c0e1448300c15372db46 (patch) tree96e89154873d3b08b73e18d717e33631cb050f67 parentc7efff9284dfde95a11aaa811c9d8ec8167f0f6e (diff)
ALSA: usb-audio: Fix irq/process data synchronization
Commit 16200948d83 ("ALSA: usb-audio: Fix race at stopping the stream") was incomplete causing another more severe kernel panic, so it got reverted. This fixes both the original problem and its fallout kernel race/crash. The original fix is to move the endpoint member NULL clearing logic inside wait_clear_urbs() so the irq triggering the urb completion doesn't call retire_capture/playback_urb() after the NULL clearing and generate a panic. However this creates a new race between snd_usb_endpoint_start()'s call to wait_clear_urbs() and the irq urb completion handler which again calls retire_capture/playback_urb() leading to a new NULL dereference. We keep the EP deactivation code in snd_usb_endpoint_start() because removing it will break the EP reference counting (see [1] [2] for info), however we don't need the "can_sleep" mechanism anymore because a new function was introduced (snd_usb_endpoint_sync_pending_stop()) which synchronizes pending stops and gets called inside the pcm prepare callback. It also makes sense to remove can_sleep because it was also removed from deactivate_urbs() signature in [3] so we benefit from more simplification. [1] commit 015618b90 ("ALSA: snd-usb: Fix URB cancellation at stream start") [2] commit e9ba389c5 ("ALSA: usb-audio: Fix scheduling-while-atomic bug in PCM capture stream") [3] commit ccc1696d5 ("ALSA: usb-audio: simplify endpoint deactivation code") Fixes: f8114f8583bb ("Revert "ALSA: usb-audio: Fix race at stopping the stream"") Signed-off-by: Ioan-Adrian Ratiu <adi@adirat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat