From: Takashi Iwai Date: Sun, 23 May 2021 09:09:15 +0000 (+0200) Subject: ALSA: core: Use READ_ONCE() / WRITE_ONCE() for power state change X-Git-Tag: v5.14-rc1~95^2~9^2~226^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=533a7ed9d541674e815c7f31c933015e257df3e5;p=thirdparty%2Flinux.git ALSA: core: Use READ_ONCE() / WRITE_ONCE() for power state change We need proper barriers to handle the power state change of the card from different CPUs. Reviewed-by: Jaroslav Kysela Link: https://lore.kernel.org/r/20210523090920.15345-2-tiwai@suse.de Signed-off-by: Takashi Iwai --- diff --git a/include/sound/core.h b/include/sound/core.h index 1f9aef0adbc90..d69dfc6c49535 100644 --- a/include/sound/core.h +++ b/include/sound/core.h @@ -142,12 +142,12 @@ struct snd_card { #ifdef CONFIG_PM static inline unsigned int snd_power_get_state(struct snd_card *card) { - return card->power_state; + return READ_ONCE(card->power_state); } static inline void snd_power_change_state(struct snd_card *card, unsigned int state) { - card->power_state = state; + WRITE_ONCE(card->power_state, state); wake_up(&card->power_sleep); }