From 64e30f16be91b06784952763f2f8092ae8b9d74e Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 13 Jun 2019 11:11:50 +0200 Subject: [PATCH] 4.4-stable patches added patches: alsa-seq-cover-unsubscribe_port-in-list_mutex.patch --- ...cover-unsubscribe_port-in-list_mutex.patch | 37 +++++++++++++++++++ queue-4.4/series | 1 + 2 files changed, 38 insertions(+) create mode 100644 queue-4.4/alsa-seq-cover-unsubscribe_port-in-list_mutex.patch diff --git a/queue-4.4/alsa-seq-cover-unsubscribe_port-in-list_mutex.patch b/queue-4.4/alsa-seq-cover-unsubscribe_port-in-list_mutex.patch new file mode 100644 index 0000000000..9ee4b66a05 --- /dev/null +++ b/queue-4.4/alsa-seq-cover-unsubscribe_port-in-list_mutex.patch @@ -0,0 +1,37 @@ +From 7c32ae35fbf9cffb7aa3736f44dec10c944ca18e Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Fri, 12 Apr 2019 11:37:19 +0200 +Subject: ALSA: seq: Cover unsubscribe_port() in list_mutex + +From: Takashi Iwai + +commit 7c32ae35fbf9cffb7aa3736f44dec10c944ca18e upstream. + +The call of unsubscribe_port() which manages the group count and +module refcount from delete_and_unsubscribe_port() looks racy; it's +not covered by the group list lock, and it's likely a cause of the +reported unbalance at port deletion. Let's move the call inside the +group list_mutex to plug the hole. + +Reported-by: syzbot+e4c8abb920efa77bace9@syzkaller.appspotmail.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/core/seq/seq_ports.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/core/seq/seq_ports.c ++++ b/sound/core/seq/seq_ports.c +@@ -550,10 +550,10 @@ static void delete_and_unsubscribe_port( + list_del_init(list); + grp->exclusive = 0; + write_unlock_irq(&grp->list_lock); +- up_write(&grp->list_mutex); + + if (!empty) + unsubscribe_port(client, port, grp, &subs->info, ack); ++ up_write(&grp->list_mutex); + } + + /* connect two ports */ diff --git a/queue-4.4/series b/queue-4.4/series index 7d89272215..a252fea5de 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -39,3 +39,4 @@ pwm-fix-deadlock-warning-when-removing-pwm-device.patch arm-exynos-fix-undefined-instruction-during-exynos54.patch futex-fix-futex-lock-the-wrong-page.patch revert-bluetooth-align-minimum-encryption-key-size-for-le-and-br-edr-connections.patch +alsa-seq-cover-unsubscribe_port-in-list_mutex.patch -- 2.39.2