--- /dev/null
+From 027a9fe6835620422b6713892175716f3613dd9d Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Sun, 30 Oct 2016 22:18:45 +0100
+Subject: ALSA: info: Limit the proc text input size
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 027a9fe6835620422b6713892175716f3613dd9d upstream.
+
+The ALSA proc handler allows currently the write in the unlimited size
+until kmalloc() fails. But basically the write is supposed to be only
+for small inputs, mostly for one line inputs, and we don't have to
+handle too large sizes at all. Since the kmalloc error results in the
+kernel warning, it's better to limit the size beforehand.
+
+This patch adds the limit of 16kB, which must be large enough for the
+currently existing code.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/core/info.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/sound/core/info.c
++++ b/sound/core/info.c
+@@ -331,6 +331,9 @@ static ssize_t snd_info_text_entry_write
+ if (!valid_pos(pos, count))
+ return -EIO;
+ next = pos + count;
++ /* don't handle too large text inputs */
++ if (next > 16 * 1024)
++ return -EIO;
+ mutex_lock(&entry->access);
+ buf = data->wbuffer;
+ if (!buf) {
--- /dev/null
+From 6809cd682b82dfff47943850d1a8c714f971b5ca Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Sun, 30 Oct 2016 22:13:19 +0100
+Subject: ALSA: info: Return error for invalid read/write
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 6809cd682b82dfff47943850d1a8c714f971b5ca upstream.
+
+Currently the ALSA proc handler allows read or write even if the proc
+file were write-only or read-only. It's mostly harmless, does thing
+but allocating memory and ignores the input/output. But it doesn't
+tell user about the invalid use, and it's confusing and inconsistent
+in comparison with other proc files.
+
+This patch adds some sanity checks and let the proc handler returning
+an -EIO error when the invalid read/write is performed.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/core/info.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/sound/core/info.c
++++ b/sound/core/info.c
+@@ -325,6 +325,8 @@ static ssize_t snd_info_text_entry_write
+ size_t next;
+ int err = 0;
+
++ if (!entry->c.text.write)
++ return -EIO;
+ pos = *offset;
+ if (!valid_pos(pos, count))
+ return -EIO;
+@@ -366,7 +368,9 @@ static int snd_info_seq_show(struct seq_
+ struct snd_info_private_data *data = seq->private;
+ struct snd_info_entry *entry = data->entry;
+
+- if (entry->c.text.read) {
++ if (!entry->c.text.read) {
++ return -EIO;
++ } else {
+ data->rbuffer->buffer = (char *)seq; /* XXX hack! */
+ entry->c.text.read(entry, data->rbuffer);
+ }
--- /dev/null
+From aa5f920993bda2095952177eea79bc8e58ae6065 Mon Sep 17 00:00:00 2001
+From: murray foster <mrafoster@gmail.com>
+Date: Sun, 9 Oct 2016 13:28:45 -0700
+Subject: ASoC: cs4270: fix DAPM stream name mismatch
+
+From: murray foster <mrafoster@gmail.com>
+
+commit aa5f920993bda2095952177eea79bc8e58ae6065 upstream.
+
+Mismatching stream names in DAPM route and widget definitions are
+causing compilation errors. Fixing these names allows the cs4270
+driver to compile and function.
+
+[Errors must be at probe time not compile time -- broonie]
+
+Signed-off-by: Murray Foster <mrafoster@gmail.com>
+Acked-by: Paul Handrigan <Paul.Handrigan@cirrus.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/cs4270.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/sound/soc/codecs/cs4270.c
++++ b/sound/soc/codecs/cs4270.c
+@@ -148,11 +148,11 @@ SND_SOC_DAPM_OUTPUT("AOUTR"),
+ };
+
+ static const struct snd_soc_dapm_route cs4270_dapm_routes[] = {
+- { "Capture", NULL, "AINA" },
+- { "Capture", NULL, "AINB" },
++ { "Capture", NULL, "AINL" },
++ { "Capture", NULL, "AINR" },
+
+- { "AOUTA", NULL, "Playback" },
+- { "AOUTB", NULL, "Playback" },
++ { "AOUTL", NULL, "Playback" },
++ { "AOUTR", NULL, "Playback" },
+ };
+
+ /**
--- /dev/null
+alsa-info-return-error-for-invalid-read-write.patch
+alsa-info-limit-the-proc-text-input-size.patch
+asoc-cs4270-fix-dapm-stream-name-mismatch.patch
--- /dev/null
+alsa-info-return-error-for-invalid-read-write.patch
+alsa-info-limit-the-proc-text-input-size.patch
+asoc-cs4270-fix-dapm-stream-name-mismatch.patch