summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2020-02-14 12:13:16 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-02-28 16:38:59 +0100
commit63495d1e1c7c4c6333359ce831ab865859c2d87d (patch)
treee65e224530f7e400cee7d9f2fbe418a63e0f39a3
parentbf3043d27755a8cb53cb99e4f04139a5279761e0 (diff)
downloadlinux-63495d1e1c7c4c6333359ce831ab865859c2d87d.tar.gz
linux-63495d1e1c7c4c6333359ce831ab865859c2d87d.tar.bz2
linux-63495d1e1c7c4c6333359ce831ab865859c2d87d.zip
ALSA: rawmidi: Avoid bit fields for state flags
commit dfa9a5efe8b932a84b3b319250aa3ac60c20f876 upstream. The rawmidi state flags (opened, append, active_sensing) are stored in bit fields that can be potentially racy when concurrently accessed without any locks. Although the current code should be fine, there is also no any real benefit by keeping the bitfields for this kind of short number of members. This patch changes those bit fields flags to the simple bool fields. There should be no size increase of the snd_rawmidi_substream by this change. Reported-by: syzbot+576cc007eb9f2c968200@syzkaller.appspotmail.com Link: https://lore.kernel.org/r/20200214111316.26939-4-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--include/sound/rawmidi.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/sound/rawmidi.h b/include/sound/rawmidi.h
index 6665cb29e1a2..c2a71fd8dfaf 100644
--- a/include/sound/rawmidi.h
+++ b/include/sound/rawmidi.h
@@ -92,9 +92,9 @@ struct snd_rawmidi_substream {
struct list_head list; /* list of all substream for given stream */
int stream; /* direction */
int number; /* substream number */
- unsigned int opened: 1, /* open flag */
- append: 1, /* append flag (merge more streams) */
- active_sensing: 1; /* send active sensing when close */
+ bool opened; /* open flag */
+ bool append; /* append flag (merge more streams) */
+ bool active_sensing; /* send active sensing when close */
int use_count; /* use counter (for output) */
size_t bytes;
struct snd_rawmidi *rmidi;