]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.18-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 Oct 2017 08:56:48 +0000 (09:56 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 Oct 2017 08:56:48 +0000 (09:56 +0100)
added patches:
alsa-hda-fix-headset-mic-problem-for-dell-machines-with-alc236.patch
ceph-unlock-dangling-spinlock-in-try_flush_caps.patch

queue-3.18/alsa-hda-fix-headset-mic-problem-for-dell-machines-with-alc236.patch [new file with mode: 0644]
queue-3.18/ceph-unlock-dangling-spinlock-in-try_flush_caps.patch [new file with mode: 0644]

diff --git a/queue-3.18/alsa-hda-fix-headset-mic-problem-for-dell-machines-with-alc236.patch b/queue-3.18/alsa-hda-fix-headset-mic-problem-for-dell-machines-with-alc236.patch
new file mode 100644 (file)
index 0000000..9f7f1e8
--- /dev/null
@@ -0,0 +1,38 @@
+From f265788c336979090ac80b9ae173aa817c4fe40d Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang@canonical.com>
+Date: Tue, 24 Oct 2017 16:53:34 +0800
+Subject: ALSA: hda - fix headset mic problem for Dell machines with alc236
+
+From: Hui Wang <hui.wang@canonical.com>
+
+commit f265788c336979090ac80b9ae173aa817c4fe40d upstream.
+
+We have several Dell laptops which use the codec alc236, the headset
+mic can't work on these machines. Following the commit 736f20a70, we
+add the pin cfg table to make the headset mic work.
+
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_realtek.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -5635,6 +5635,14 @@ static const struct snd_hda_pin_quirk al
+               ALC225_STANDARD_PINS,
+               {0x12, 0xb7a60130},
+               {0x1b, 0x90170110}),
++      SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
++              {0x12, 0x90a60140},
++              {0x14, 0x90170110},
++              {0x21, 0x02211020}),
++      SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
++              {0x12, 0x90a60140},
++              {0x14, 0x90170150},
++              {0x21, 0x02211020}),
+       SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
+               ALC255_STANDARD_PINS,
+               {0x12, 0x40300000},
diff --git a/queue-3.18/ceph-unlock-dangling-spinlock-in-try_flush_caps.patch b/queue-3.18/ceph-unlock-dangling-spinlock-in-try_flush_caps.patch
new file mode 100644 (file)
index 0000000..67c98eb
--- /dev/null
@@ -0,0 +1,48 @@
+From 6c2838fbdedb9b72a81c931d49e56b229b6cdbca Mon Sep 17 00:00:00 2001
+From: Jeff Layton <jlayton@redhat.com>
+Date: Thu, 19 Oct 2017 08:52:58 -0400
+Subject: ceph: unlock dangling spinlock in try_flush_caps()
+
+From: Jeff Layton <jlayton@redhat.com>
+
+commit 6c2838fbdedb9b72a81c931d49e56b229b6cdbca upstream.
+
+sparse warns:
+
+  fs/ceph/caps.c:2042:9: warning: context imbalance in 'try_flush_caps' - wrong count at exit
+
+We need to exit this function with the lock unlocked, but a couple of
+cases leave it locked.
+
+Signed-off-by: Jeff Layton <jlayton@redhat.com>
+Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
+Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
+Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ceph/caps.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/fs/ceph/caps.c
++++ b/fs/ceph/caps.c
+@@ -1748,6 +1748,7 @@ static int try_flush_caps(struct inode *
+ retry:
+       spin_lock(&ci->i_ceph_lock);
+       if (ci->i_ceph_flags & CEPH_I_NOFLUSH) {
++              spin_unlock(&ci->i_ceph_lock);
+               dout("try_flush_caps skipping %p I_NOFLUSH set\n", inode);
+               goto out;
+       }
+@@ -1765,8 +1766,10 @@ retry:
+                       mutex_lock(&session->s_mutex);
+                       goto retry;
+               }
+-              if (cap->session->s_state < CEPH_MDS_SESSION_OPEN)
++              if (cap->session->s_state < CEPH_MDS_SESSION_OPEN) {
++                      spin_unlock(&ci->i_ceph_lock);
+                       goto out;
++              }
+               flushing = __mark_caps_flushing(inode, session);