diff options
author | Takashi Iwai <tiwai@suse.de> | 2024-05-10 15:29:53 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2024-05-10 15:29:58 +0200 |
commit | 73a6bbeca7d0548719f6cd6b9074643b196fbc5a (patch) | |
tree | b8aa90717733658636c4765ceadbb326fe4486fe /sound/core/init.c | |
parent | ea89a742daf4317038fbab6776d36726dd7a1e2a (diff) | |
parent | 31469e8b286c5f3f707db648d329a315e09bd631 (diff) |
Merge branch 'for-linus' into for-next
Pull 6.9-rc devel branch for further updates.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/init.c')
-rw-r--r-- | sound/core/init.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/core/init.c b/sound/core/init.c index 4ed5037d8693..89c8354862c4 100644 --- a/sound/core/init.c +++ b/sound/core/init.c @@ -516,6 +516,14 @@ void snd_card_disconnect(struct snd_card *card) } } +#ifdef CONFIG_PM + /* wake up sleepers here before other callbacks for avoiding potential + * deadlocks with other locks (e.g. in kctls); + * then this notifies the shutdown and sleepers would abort immediately + */ + wake_up_all(&card->power_sleep); +#endif + /* notify all connected devices about disconnection */ /* at this point, they cannot respond to any calls except release() */ @@ -543,7 +551,6 @@ void snd_card_disconnect(struct snd_card *card) } #ifdef CONFIG_PM - wake_up(&card->power_sleep); snd_power_sync_ref(card); #endif } |