]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.3-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Apr 2012 22:26:34 +0000 (15:26 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Apr 2012 22:26:34 +0000 (15:26 -0700)
added patches:
asoc-ak4642-fixup-mute-needs-1-step.patch
asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch
cred-copy_process-should-clear-child-replacement_session_keyring.patch
media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch
media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch

queue-3.3/asoc-ak4642-fixup-mute-needs-1-step.patch [new file with mode: 0644]
queue-3.3/asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch [new file with mode: 0644]
queue-3.3/cred-copy_process-should-clear-child-replacement_session_keyring.patch [new file with mode: 0644]
queue-3.3/media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch [new file with mode: 0644]
queue-3.3/media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch [new file with mode: 0644]
queue-3.3/series

diff --git a/queue-3.3/asoc-ak4642-fixup-mute-needs-1-step.patch b/queue-3.3/asoc-ak4642-fixup-mute-needs-1-step.patch
new file mode 100644 (file)
index 0000000..6a2f8ef
--- /dev/null
@@ -0,0 +1,32 @@
+From 1f99e44cf059d2ed43c5a0724fa738b83800f725 Mon Sep 17 00:00:00 2001
+From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Date: Wed, 4 Apr 2012 23:28:01 -0700
+Subject: ASoC: ak4642: fixup: mute needs +1 step
+
+From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+
+commit 1f99e44cf059d2ed43c5a0724fa738b83800f725 upstream.
+
+ak4642 out_tlv is +12.0dB to -115.0 dB, and it supports mute.
+But current settings didn't care +1 step for mute.
+This patch adds it
+
+Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/ak4642.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/codecs/ak4642.c
++++ b/sound/soc/codecs/ak4642.c
+@@ -140,7 +140,7 @@
+  * min : 0xFE : -115.0 dB
+  * mute: 0xFF
+  */
+-static const DECLARE_TLV_DB_SCALE(out_tlv, -11500, 50, 1);
++static const DECLARE_TLV_DB_SCALE(out_tlv, -11550, 50, 1);
+ static const struct snd_kcontrol_new ak4642_snd_controls[] = {
diff --git a/queue-3.3/asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch b/queue-3.3/asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch
new file mode 100644 (file)
index 0000000..4166d17
--- /dev/null
@@ -0,0 +1,32 @@
+From 8abe05c6eb358967f16bce8a02c88d57c82cfbd6 Mon Sep 17 00:00:00 2001
+From: Stephen Warren <swarren@nvidia.com>
+Date: Thu, 5 Apr 2012 23:11:16 -0600
+Subject: ASoC: tegra: fix i2s compilation when !CONFIG_DEBUG_FS
+
+From: Stephen Warren <swarren@nvidia.com>
+
+commit 8abe05c6eb358967f16bce8a02c88d57c82cfbd6 upstream.
+
+Commit d4a2eca "ASoC: Tegra I2S: Remove dependency on pdev->id" changed
+the prototype of tegra_i2s_debug_add, but didn't update the dummy inline
+used when !CONFIG_DEBUG_FS. Fix that.
+
+Signed-off-by: Stephen Warren <swarren@nvidia.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/tegra/tegra_i2s.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/tegra/tegra_i2s.c
++++ b/sound/soc/tegra/tegra_i2s.c
+@@ -112,7 +112,7 @@ static void tegra_i2s_debug_remove(struc
+               debugfs_remove(i2s->debug);
+ }
+ #else
+-static inline void tegra_i2s_debug_add(struct tegra_i2s *i2s, int id)
++static inline void tegra_i2s_debug_add(struct tegra_i2s *i2s)
+ {
+ }
diff --git a/queue-3.3/cred-copy_process-should-clear-child-replacement_session_keyring.patch b/queue-3.3/cred-copy_process-should-clear-child-replacement_session_keyring.patch
new file mode 100644 (file)
index 0000000..3e02e1c
--- /dev/null
@@ -0,0 +1,41 @@
+From 79549c6dfda0603dba9a70a53467ce62d9335c33 Mon Sep 17 00:00:00 2001
+From: Oleg Nesterov <oleg@redhat.com>
+Date: Mon, 9 Apr 2012 21:03:50 +0200
+Subject: cred: copy_process() should clear child->replacement_session_keyring
+
+From: Oleg Nesterov <oleg@redhat.com>
+
+commit 79549c6dfda0603dba9a70a53467ce62d9335c33 upstream.
+
+keyctl_session_to_parent(task) sets ->replacement_session_keyring,
+it should be processed and cleared by key_replace_session_keyring().
+
+However, this task can fork before it notices TIF_NOTIFY_RESUME and
+the new child gets the bogus ->replacement_session_keyring copied by
+dup_task_struct(). This is obviously wrong and, if nothing else, this
+leads to put_cred(already_freed_cred).
+
+change copy_creds() to clear this member. If copy_process() fails
+before this point the wrong ->replacement_session_keyring doesn't
+matter, exit_creds() won't be called.
+
+Signed-off-by: Oleg Nesterov <oleg@redhat.com>
+Acked-by: David Howells <dhowells@redhat.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/cred.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/kernel/cred.c
++++ b/kernel/cred.c
+@@ -385,6 +385,8 @@ int copy_creds(struct task_struct *p, un
+       struct cred *new;
+       int ret;
++      p->replacement_session_keyring = NULL;
++
+       if (
+ #ifdef CONFIG_KEYS
+               !p->cred->thread_keyring &&
diff --git a/queue-3.3/media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch b/queue-3.3/media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch
new file mode 100644 (file)
index 0000000..5f5ec61
--- /dev/null
@@ -0,0 +1,65 @@
+From 45145b67f5895ff92207cffd74e65460a87920b2 Mon Sep 17 00:00:00 2001
+From: Simon Arlott <simon@fire.lp0.eu>
+Date: Mon, 6 Feb 2012 17:57:01 -0300
+Subject: media: dvb-core: fix DVBFE_ALGO_HW retune bug
+
+From: Simon Arlott <simon@fire.lp0.eu>
+
+commit 45145b67f5895ff92207cffd74e65460a87920b2 upstream.
+
+Commit 7e07222 breaks DVBFE_ALGO_HW tuning after a retune is requested,
+which causes bad tuning on my TBS 6920.
+
+[    0.769091] pci 0000:06:00.0: [14f1:8852] type 0 class 0x000400
+[   19.733530] CORE cx23885[0]: subsystem: 6920:8888, board: TurboSight TBS 6920 [card=14,autodetected]
+[  762.824912] cx24116_load_firmware: FW version 1.23.86.1
+
+7e0722215a510921cbb73ab4c37477d4dcb91bf8 [media] dvb-core: Don't pass DVBv3 parameters on tune() fops
+
+Although re_tune is set to true when FESTATE_RETUNE occurs, it is never
+set back to false which the old code used to do when !FESTATE_RETUNE.
+
+This patch sets re_tune to false if !(state & FESTATE_RETUNE).
+
+$ szap-s2 -a 2 "Channel 5"
+reading channels from file '/home/simon/.szap/channels.conf'
+zapping to 247 'Channel 5':
+delivery DVB-S, modulation QPSK
+sat 0, frequency 10964 MHz H, symbolrate 22000000, coderate 5/6, rolloff 0.35
+vpid 0x092a, apid 0x092b, sid 0x092d
+using '/dev/dvb/adapter2/frontend0' and '/dev/dvb/adapter2/demux0'
+status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr eb33 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cec0 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+status 1f | signal cec0 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
+
+Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+
+---
+ drivers/media/dvb/dvb-core/dvb_frontend.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
++++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
+@@ -657,6 +657,8 @@ restart:
+                                       dprintk("%s: Retune requested, FESTATE_RETUNE\n", __func__);
+                                       re_tune = true;
+                                       fepriv->state = FESTATE_TUNED;
++                              } else {
++                                      re_tune = false;
+                               }
+                               if (fe->ops.tune)
diff --git a/queue-3.3/media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch b/queue-3.3/media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch
new file mode 100644 (file)
index 0000000..433f8c4
--- /dev/null
@@ -0,0 +1,67 @@
+From 556a0442e08a8bc8541587a349cbf26ed14ec6de Mon Sep 17 00:00:00 2001
+From: Chris Rankin <rankincj@yahoo.com>
+Date: Fri, 6 Apr 2012 18:38:18 -0300
+Subject: media: dvb_frontend: regression fix: userspace ABI broken for xine
+
+From: Chris Rankin <rankincj@yahoo.com>
+
+commit 556a0442e08a8bc8541587a349cbf26ed14ec6de upstream.
+
+The commit e399ce77e6e has broken the DVB ABI for xine:
+
+The problem is that xine is expecting every event after a successful
+FE_SET_FRONTEND ioctl to have a non-zero frequency parameter, regardless
+of whether the tuning process has LOCKed yet. What used to happen is
+that the events inherited the initial tuning parameters from the
+FE_SET_FRONTEND call. However, the fepriv->parameters_out struct is now
+not initialised until the status contains the FE_HAS_LOCK bit.
+
+You might argue that this behaviour is intentional, except that if an
+application other than xine uses the DVB adapter and manages to set the
+parameters_out.frequency field to something other than zero, then xine
+no longer has any problems until either the adapter is replugged or the
+kernel modules reloaded. This can only mean that the
+fepriv->parameters_out struct still contains the (stale) tuning
+information from the previous application.
+
+Signed-off-by: Chris Rankin <rankincj@yahoo.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/dvb/dvb-core/dvb_frontend.c |   10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
++++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
+@@ -143,6 +143,8 @@ struct dvb_frontend_private {
+ static void dvb_frontend_wakeup(struct dvb_frontend *fe);
+ static int dtv_get_frontend(struct dvb_frontend *fe,
+                           struct dvb_frontend_parameters *p_out);
++static int dtv_property_legacy_params_sync(struct dvb_frontend *fe,
++                                         struct dvb_frontend_parameters *p);
+ static bool has_get_frontend(struct dvb_frontend *fe)
+ {
+@@ -695,6 +697,7 @@ restart:
+                                       fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN;
+                                       fepriv->delay = HZ / 2;
+                               }
++                              dtv_property_legacy_params_sync(fe, &fepriv->parameters_out);
+                               fe->ops.read_status(fe, &s);
+                               if (s != fepriv->status) {
+                                       dvb_frontend_add_event(fe, s); /* update event list */
+@@ -1831,6 +1834,13 @@ static int dtv_set_frontend(struct dvb_f
+               return -EINVAL;
+       /*
++       * Initialize output parameters to match the values given by
++       * the user. FE_SET_FRONTEND triggers an initial frontend event
++       * with status = 0, which copies output parameters to userspace.
++       */
++      dtv_property_legacy_params_sync(fe, &fepriv->parameters_out);
++
++      /*
+        * Be sure that the bandwidth will be filled for all
+        * non-satellite systems, as tuners need to know what
+        * low pass/Nyquist half filter should be applied, in
index 9665383ead1fa40af253818753cba0e620302226..257e85e522d79caaae0427680dbf8fa8d4aeafad 100644 (file)
@@ -71,3 +71,8 @@ mfd-clear-twl6030-irq-status-register-only-once.patch
 usb-add-motorola-rokr-e6-id-to-the-usbnet-driver-zaurus.patch
 ioat-fix-size-of-completion-for-xen.patch
 uvcvideo-fix-race-related-crash-in-uvc_video_clock_update.patch
+asoc-ak4642-fixup-mute-needs-1-step.patch
+asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch
+media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch
+media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch
+cred-copy_process-should-clear-child-replacement_session_keyring.patch