]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
.37 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 8 Mar 2011 19:30:37 +0000 (11:30 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 8 Mar 2011 19:30:37 +0000 (11:30 -0800)
queue-2.6.37/alsa-hda-don-t-set-to-d3-in-cirrus-errata-init-verbs.patch [new file with mode: 0644]
queue-2.6.37/alsa-hda-realtek-fixup-jack-detection-to-input-subsystem.patch [new file with mode: 0644]
queue-2.6.37/asoc-fix-wm9081-platform-data-initialisation.patch [new file with mode: 0644]
queue-2.6.37/cpuset-add-a-missing-unlock-in-cpuset_write_resmask.patch [new file with mode: 0644]
queue-2.6.37/drivers-misc-bmp085.c-add-module_device_table.patch [new file with mode: 0644]
queue-2.6.37/keyboard-integer-underflow-bug.patch [new file with mode: 0644]
queue-2.6.37/virtio-console-don-t-access-vqs-if-device-was-unplugged.patch [new file with mode: 0644]

diff --git a/queue-2.6.37/alsa-hda-don-t-set-to-d3-in-cirrus-errata-init-verbs.patch b/queue-2.6.37/alsa-hda-don-t-set-to-d3-in-cirrus-errata-init-verbs.patch
new file mode 100644 (file)
index 0000000..b4f9f97
--- /dev/null
@@ -0,0 +1,36 @@
+From 38c07641905c0db58e800ea974cd9158717c6610 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Thu, 3 Mar 2011 14:54:19 +0100
+Subject: ALSA: hda - Don't set to D3 in Cirrus errata init verbs
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 38c07641905c0db58e800ea974cd9158717c6610 upstream.
+
+The errata init verbs for CS42xx codecs contain the verbs to set
+the power-state of SPDIF nodes to D3, which seem to break the SPDIF
+output on some MacBooks.  Since this is executed during the power-up
+initialization, we shouldn't turn them down there.
+
+Reported-by: Arun Raghavan <arun.raghavan@collabora.co.uk>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/patch_cirrus.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/sound/pci/hda/patch_cirrus.c
++++ b/sound/pci/hda/patch_cirrus.c
+@@ -1039,9 +1039,11 @@ static struct hda_verb cs_errata_init_ve
+       {0x11, AC_VERB_SET_PROC_COEF, 0x0008},
+       {0x11, AC_VERB_SET_PROC_STATE, 0x00},
++#if 0 /* Don't to set to D3 as we are in power-up sequence */
+       {0x07, AC_VERB_SET_POWER_STATE, 0x03}, /* S/PDIF Rx: D3 */
+       {0x08, AC_VERB_SET_POWER_STATE, 0x03}, /* S/PDIF Tx: D3 */
+       /*{0x01, AC_VERB_SET_POWER_STATE, 0x03},*/ /* AFG: D3 This is already handled */
++#endif
+       {} /* terminator */
+ };
diff --git a/queue-2.6.37/alsa-hda-realtek-fixup-jack-detection-to-input-subsystem.patch b/queue-2.6.37/alsa-hda-realtek-fixup-jack-detection-to-input-subsystem.patch
new file mode 100644 (file)
index 0000000..a551d6e
--- /dev/null
@@ -0,0 +1,38 @@
+From f0ce27996217d06207c8bfda1b1bbec2fbab48c6 Mon Sep 17 00:00:00 2001
+From: David Henningsson <david.henningsson@canonical.com>
+Date: Mon, 28 Feb 2011 15:58:07 +0100
+Subject: ALSA: HDA: Realtek: Fixup jack detection to input subsystem
+
+From: David Henningsson <david.henningsson@canonical.com>
+
+commit f0ce27996217d06207c8bfda1b1bbec2fbab48c6 upstream.
+
+This patch fixes an error in the jack detection reporting,
+causing the jack detection sometimes not to be reported
+correctly to the input subsystem. It should apply to several
+Realtek codecs.
+
+Signed-off-by: David Henningsson <david.henningsson@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/patch_realtek.c |    7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -1127,11 +1127,8 @@ static void alc_automute_speaker(struct
+               nid = spec->autocfg.hp_pins[i];
+               if (!nid)
+                       break;
+-              if (snd_hda_jack_detect(codec, nid)) {
+-                      spec->jack_present = 1;
+-                      break;
+-              }
+-              alc_report_jack(codec, spec->autocfg.hp_pins[i]);
++              alc_report_jack(codec, nid);
++              spec->jack_present |= snd_hda_jack_detect(codec, nid);
+       }
+       mute = spec->jack_present ? HDA_AMP_MUTE : 0;
diff --git a/queue-2.6.37/asoc-fix-wm9081-platform-data-initialisation.patch b/queue-2.6.37/asoc-fix-wm9081-platform-data-initialisation.patch
new file mode 100644 (file)
index 0000000..8abc43e
--- /dev/null
@@ -0,0 +1,40 @@
+From 3ee845acba58549578d03a46ed307c0a56c7f777 Mon Sep 17 00:00:00 2001
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Date: Tue, 1 Mar 2011 20:05:23 +0000
+Subject: ASoC: Fix WM9081 platform data initialisation
+
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+
+commit 3ee845acba58549578d03a46ed307c0a56c7f777 upstream.
+
+It went AWOL in the multi-component conversion.
+
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/soc/codecs/wm9081.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/sound/soc/codecs/wm9081.c
++++ b/sound/soc/codecs/wm9081.c
+@@ -15,6 +15,7 @@
+ #include <linux/moduleparam.h>
+ #include <linux/init.h>
+ #include <linux/delay.h>
++#include <linux/device.h>
+ #include <linux/pm.h>
+ #include <linux/i2c.h>
+ #include <linux/platform_device.h>
+@@ -1338,6 +1339,10 @@ static __devinit int wm9081_i2c_probe(st
+       wm9081->control_type = SND_SOC_I2C;
+       wm9081->control_data = i2c;
++      if (dev_get_platdata(&i2c->dev))
++              memcpy(&wm9081->retune, dev_get_platdata(&i2c->dev),
++                     sizeof(wm9081->retune));
++
+       ret = snd_soc_register_codec(&i2c->dev,
+                       &soc_codec_dev_wm9081, &wm9081_dai, 1);
+       if (ret < 0)
diff --git a/queue-2.6.37/cpuset-add-a-missing-unlock-in-cpuset_write_resmask.patch b/queue-2.6.37/cpuset-add-a-missing-unlock-in-cpuset_write_resmask.patch
new file mode 100644 (file)
index 0000000..289d788
--- /dev/null
@@ -0,0 +1,47 @@
+From b75f38d659e6fc747eda64cb72f3920e29dd44a4 Mon Sep 17 00:00:00 2001
+From: Li Zefan <lizf@cn.fujitsu.com>
+Date: Fri, 4 Mar 2011 17:36:21 -0800
+Subject: cpuset: add a missing unlock in cpuset_write_resmask()
+
+From: Li Zefan <lizf@cn.fujitsu.com>
+
+commit b75f38d659e6fc747eda64cb72f3920e29dd44a4 upstream.
+
+Don't forget to release cgroup_mutex if alloc_trial_cpuset() fails.
+
+[akpm@linux-foundation.org: avoid multiple return points]
+Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
+Cc: Paul Menage <menage@google.com>
+Acked-by: David Rientjes <rientjes@google.com>
+Cc: Miao Xie <miaox@cn.fujitsu.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/cpuset.c |    7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+--- a/kernel/cpuset.c
++++ b/kernel/cpuset.c
+@@ -1575,8 +1575,10 @@ static int cpuset_write_resmask(struct c
+               return -ENODEV;
+       trialcs = alloc_trial_cpuset(cs);
+-      if (!trialcs)
+-              return -ENOMEM;
++      if (!trialcs) {
++              retval = -ENOMEM;
++              goto out;
++      }
+       switch (cft->private) {
+       case FILE_CPULIST:
+@@ -1591,6 +1593,7 @@ static int cpuset_write_resmask(struct c
+       }
+       free_trial_cpuset(trialcs);
++out:
+       cgroup_unlock();
+       return retval;
+ }
diff --git a/queue-2.6.37/drivers-misc-bmp085.c-add-module_device_table.patch b/queue-2.6.37/drivers-misc-bmp085.c-add-module_device_table.patch
new file mode 100644 (file)
index 0000000..d6116de
--- /dev/null
@@ -0,0 +1,33 @@
+From 97e419a082461f8a3a0818834eb88ad41219a1da Mon Sep 17 00:00:00 2001
+From: Axel Lin <axel.lin@gmail.com>
+Date: Fri, 4 Mar 2011 17:36:22 -0800
+Subject: drivers/misc/bmp085.c: add MODULE_DEVICE_TABLE
+
+From: Axel Lin <axel.lin@gmail.com>
+
+commit 97e419a082461f8a3a0818834eb88ad41219a1da upstream.
+
+The device table is required to load modules based on modaliases.
+
+Signed-off-by: Axel Lin <axel.lin@gmail.com>
+Cc: Shubhrajyoti D <shubhrajyoti@ti.com>
+Cc: Christoph Mair <christoph.mair@gmail.com>
+Cc: Jonathan Cameron <jic23@cam.ac.uk>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/misc/bmp085.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/misc/bmp085.c
++++ b/drivers/misc/bmp085.c
+@@ -449,6 +449,7 @@ static const struct i2c_device_id bmp085
+       { "bmp085", 0 },
+       { }
+ };
++MODULE_DEVICE_TABLE(i2c, bmp085_id);
+ static struct i2c_driver bmp085_driver = {
+       .driver = {
diff --git a/queue-2.6.37/keyboard-integer-underflow-bug.patch b/queue-2.6.37/keyboard-integer-underflow-bug.patch
new file mode 100644 (file)
index 0000000..b111b12
--- /dev/null
@@ -0,0 +1,35 @@
+From b652277b09d3d030cb074cc6a98ba80b34244c03 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <error27@gmail.com>
+Date: Thu, 3 Mar 2011 17:56:06 +0100
+Subject: [S390] keyboard: integer underflow bug
+
+From: Dan Carpenter <error27@gmail.com>
+
+commit b652277b09d3d030cb074cc6a98ba80b34244c03 upstream.
+
+The "ct" variable should be an unsigned int.  Both struct kbdiacrs
+->kb_cnt and struct kbd_data ->accent_table_size are unsigned ints.
+
+Making it signed causes a problem in KBDIACRUC because the user could
+set the signed bit and cause a buffer overflow.
+
+Signed-off-by: Dan Carpenter <error27@gmail.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/s390/char/keyboard.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/s390/char/keyboard.c
++++ b/drivers/s390/char/keyboard.c
+@@ -460,7 +460,8 @@ kbd_ioctl(struct kbd_data *kbd, struct f
+         unsigned int cmd, unsigned long arg)
+ {
+       void __user *argp;
+-      int ct, perm;
++      unsigned int ct;
++      int perm;
+       argp = (void __user *)arg;
diff --git a/queue-2.6.37/virtio-console-don-t-access-vqs-if-device-was-unplugged.patch b/queue-2.6.37/virtio-console-don-t-access-vqs-if-device-was-unplugged.patch
new file mode 100644 (file)
index 0000000..674f3ad
--- /dev/null
@@ -0,0 +1,51 @@
+From d7a62cd0332115d4c7c4689abea0d889a30d8349 Mon Sep 17 00:00:00 2001
+From: Amit Shah <amit.shah@redhat.com>
+Date: Fri, 4 Mar 2011 14:04:33 +1030
+Subject: virtio: console: Don't access vqs if device was unplugged
+
+From: Amit Shah <amit.shah@redhat.com>
+
+commit d7a62cd0332115d4c7c4689abea0d889a30d8349 upstream.
+
+If a virtio-console device gets unplugged while a port is open, a
+subsequent close() call on the port accesses vqs to free up buffers.
+This can lead to a crash.
+
+The buffers are already freed up as a result of the call to
+unplug_ports() from virtcons_remove().  The fix is to simply not access
+vq information if port->portdev is NULL.
+
+Reported-by: juzhang <juzhang@redhat.com>
+Signed-off-by: Amit Shah <amit.shah@redhat.com>
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/virtio_console.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/char/virtio_console.c
++++ b/drivers/char/virtio_console.c
+@@ -387,6 +387,10 @@ static void discard_port_data(struct por
+       unsigned int len;
+       int ret;
++      if (!port->portdev) {
++              /* Device has been unplugged.  vqs are already gone. */
++              return;
++      }
+       vq = port->in_vq;
+       if (port->inbuf)
+               buf = port->inbuf;
+@@ -469,6 +473,10 @@ static void reclaim_consumed_buffers(str
+       void *buf;
+       unsigned int len;
++      if (!port->portdev) {
++              /* Device has been unplugged.  vqs are already gone. */
++              return;
++      }
+       while ((buf = virtqueue_get_buf(port->out_vq, &len))) {
+               kfree(buf);
+               port->outvq_full = false;