From: Greg Kroah-Hartman Date: Thu, 29 Nov 2012 21:09:05 +0000 (-0800) Subject: 3.0-stable patches X-Git-Tag: v3.6.9~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e2b1d0dee5621b1393b9e4a0831fe41dab7c3ad3;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches added patches: alsa-hda-add-new-codec-alc283-alc290-support.patch alsa-hda-add-support-for-realtek-alc292.patch alsa-hda-fix-missing-beep-on-asus-x43u-notebook.patch can-bcm-initialize-ifindex-for-timeouts-without-previous-frame-reception.patch jbd-fix-lock-ordering-bug-in-journal_unmap_buffer.patch sparc64-not-any-error-from-do_sigaltstack-should-fail-rt_sigreturn.patch --- diff --git a/queue-3.0/alsa-hda-add-new-codec-alc283-alc290-support.patch b/queue-3.0/alsa-hda-add-new-codec-alc283-alc290-support.patch new file mode 100644 index 00000000000..b5d7fb7aee2 --- /dev/null +++ b/queue-3.0/alsa-hda-add-new-codec-alc283-alc290-support.patch @@ -0,0 +1,30 @@ +From 7ff34ad80b7080fafaac8efa9ef0061708eddd51 Mon Sep 17 00:00:00 2001 +From: Kailang Yang +Date: Sat, 6 Oct 2012 17:02:30 +0200 +Subject: ALSA: hda - Add new codec ALC283 ALC290 support + +From: Kailang Yang + +commit 7ff34ad80b7080fafaac8efa9ef0061708eddd51 upstream. + +These are compatible with standard ALC269 parser. + +Signed-off-by: Kailang Yang +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -20134,6 +20134,8 @@ static const struct hda_codec_preset snd + { .id = 0x10ec0276, .name = "ALC276", .patch = patch_alc269 }, + { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 }, + { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 }, ++ { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 }, ++ { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 }, + { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660", + .patch = patch_alc861 }, + { .id = 0x10ec0660, .name = "ALC660-VD", .patch = patch_alc861vd }, diff --git a/queue-3.0/alsa-hda-add-support-for-realtek-alc292.patch b/queue-3.0/alsa-hda-add-support-for-realtek-alc292.patch new file mode 100644 index 00000000000..7a21ba2ba52 --- /dev/null +++ b/queue-3.0/alsa-hda-add-support-for-realtek-alc292.patch @@ -0,0 +1,32 @@ +From af02dde8a609d8d071c4b31a82df811a55690a4a Mon Sep 17 00:00:00 2001 +From: David Henningsson +Date: Wed, 21 Nov 2012 08:57:58 +0100 +Subject: ALSA: hda - Add support for Realtek ALC292 + +From: David Henningsson + +commit af02dde8a609d8d071c4b31a82df811a55690a4a upstream. + +We found a new codec ID 292, and that just a simple quirk would enable +sound output/input on this ALC292 chip. + +BugLink: https://bugs.launchpad.net/bugs/1081466 +Tested-by: Acelan Kao +Signed-off-by: David Henningsson +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -20137,6 +20137,7 @@ static const struct hda_codec_preset snd + { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 }, + { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 }, + { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 }, ++ { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 }, + { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660", + .patch = patch_alc861 }, + { .id = 0x10ec0660, .name = "ALC660-VD", .patch = patch_alc861vd }, diff --git a/queue-3.0/alsa-hda-fix-missing-beep-on-asus-x43u-notebook.patch b/queue-3.0/alsa-hda-fix-missing-beep-on-asus-x43u-notebook.patch new file mode 100644 index 00000000000..9d13d8072f3 --- /dev/null +++ b/queue-3.0/alsa-hda-fix-missing-beep-on-asus-x43u-notebook.patch @@ -0,0 +1,27 @@ +From 7110005e8d5c3cd418fc4b64f9f124f004422a9a Mon Sep 17 00:00:00 2001 +From: Duncan Roe +Date: Wed, 10 Oct 2012 14:19:50 +0200 +Subject: ALSA: hda - Fix missing beep on ASUS X43U notebook + +From: Duncan Roe + +commit 7110005e8d5c3cd418fc4b64f9f124f004422a9a upstream. + +Signed-off-by: Duncan Roe +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -5967,6 +5967,7 @@ static void fillup_priv_adc_nids(struct + ((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 3, idx, dir)) + + static const struct snd_pci_quirk beep_white_list[] = { ++ SND_PCI_QUIRK(0x1043, 0x103c, "ASUS", 1), + SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1), + SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1), + SND_PCI_QUIRK(0x1043, 0x831a, "EeePC", 1), diff --git a/queue-3.0/can-bcm-initialize-ifindex-for-timeouts-without-previous-frame-reception.patch b/queue-3.0/can-bcm-initialize-ifindex-for-timeouts-without-previous-frame-reception.patch new file mode 100644 index 00000000000..d5256a99662 --- /dev/null +++ b/queue-3.0/can-bcm-initialize-ifindex-for-timeouts-without-previous-frame-reception.patch @@ -0,0 +1,35 @@ +From 81b401100c01d2357031e874689f89bd788d13cd Mon Sep 17 00:00:00 2001 +From: Oliver Hartkopp +Date: Mon, 26 Nov 2012 22:24:23 +0100 +Subject: can: bcm: initialize ifindex for timeouts without previous frame reception + +From: Oliver Hartkopp + +commit 81b401100c01d2357031e874689f89bd788d13cd upstream. + +Set in the rx_ifindex to pass the correct interface index in the case of a +message timeout detection. Usually the rx_ifindex value is set at receive +time. But when no CAN frame has been received the RX_TIMEOUT notification +did not contain a valid value. + +Reported-by: Andre Naujoks +Signed-off-by: Oliver Hartkopp +Signed-off-by: Marc Kleine-Budde +Signed-off-by: Greg Kroah-Hartman + +--- + net/can/bcm.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/net/can/bcm.c ++++ b/net/can/bcm.c +@@ -1085,6 +1085,9 @@ static int bcm_rx_setup(struct bcm_msg_h + op->sk = sk; + op->ifindex = ifindex; + ++ /* ifindex for timeout events w/o previous frame reception */ ++ op->rx_ifindex = ifindex; ++ + /* initialize uninitialized (kzalloc) structure */ + hrtimer_init(&op->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + op->timer.function = bcm_rx_timeout_handler; diff --git a/queue-3.0/jbd-fix-lock-ordering-bug-in-journal_unmap_buffer.patch b/queue-3.0/jbd-fix-lock-ordering-bug-in-journal_unmap_buffer.patch new file mode 100644 index 00000000000..23fed938ee5 --- /dev/null +++ b/queue-3.0/jbd-fix-lock-ordering-bug-in-journal_unmap_buffer.patch @@ -0,0 +1,38 @@ +From 25389bb207987b5774182f763b9fb65ff08761c8 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Fri, 23 Nov 2012 14:03:04 +0100 +Subject: jbd: Fix lock ordering bug in journal_unmap_buffer() + +From: Jan Kara + +commit 25389bb207987b5774182f763b9fb65ff08761c8 upstream. + +Commit 09e05d48 introduced a wait for transaction commit into +journal_unmap_buffer() in the case we are truncating a buffer undergoing commit +in the page stradding i_size on a filesystem with blocksize < pagesize. Sadly +we forgot to drop buffer lock before waiting for transaction commit and thus +deadlock is possible when kjournald wants to lock the buffer. + +Fix the problem by dropping the buffer lock before waiting for transaction +commit. Since we are still holding page lock (and that is OK), buffer cannot +disappear under us. + +Signed-off-by: Jan Kara +Signed-off-by: Greg Kroah-Hartman + +--- + fs/jbd/transaction.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/fs/jbd/transaction.c ++++ b/fs/jbd/transaction.c +@@ -1955,7 +1955,9 @@ retry: + spin_unlock(&journal->j_list_lock); + jbd_unlock_bh_state(bh); + spin_unlock(&journal->j_state_lock); ++ unlock_buffer(bh); + log_wait_commit(journal, tid); ++ lock_buffer(bh); + goto retry; + } + /* diff --git a/queue-3.0/series b/queue-3.0/series index 4d4875dfaaa..438af219ae6 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -17,3 +17,9 @@ dm-fix-deadlock-with-request-based-dm-and-queue-request_fn-recursion.patch futex-avoid-wake_futex-for-a-pi-futex_q.patch mac80211-deinitialize-ibss-internals-after-emptiness-check.patch radeon-add-agpmode-1-quirk-for-rv250.patch +can-bcm-initialize-ifindex-for-timeouts-without-previous-frame-reception.patch +jbd-fix-lock-ordering-bug-in-journal_unmap_buffer.patch +sparc64-not-any-error-from-do_sigaltstack-should-fail-rt_sigreturn.patch +alsa-hda-add-new-codec-alc283-alc290-support.patch +alsa-hda-fix-missing-beep-on-asus-x43u-notebook.patch +alsa-hda-add-support-for-realtek-alc292.patch diff --git a/queue-3.0/sparc64-not-any-error-from-do_sigaltstack-should-fail-rt_sigreturn.patch b/queue-3.0/sparc64-not-any-error-from-do_sigaltstack-should-fail-rt_sigreturn.patch new file mode 100644 index 00000000000..702b48fc209 --- /dev/null +++ b/queue-3.0/sparc64-not-any-error-from-do_sigaltstack-should-fail-rt_sigreturn.patch @@ -0,0 +1,39 @@ +From fae2ae2a900a5c7bb385fe4075f343e7e2d5daa2 Mon Sep 17 00:00:00 2001 +From: Al Viro +Date: Sun, 18 Nov 2012 22:27:03 -0500 +Subject: sparc64: not any error from do_sigaltstack() should fail rt_sigreturn() + +From: Al Viro + +commit fae2ae2a900a5c7bb385fe4075f343e7e2d5daa2 upstream. + +If a signal handler is executed on altstack and another signal comes, +we will end up with rt_sigreturn() on return from the second handler +getting -EPERM from do_sigaltstack(). It's perfectly OK, since we +are not asking to change the settings; in fact, they couldn't have been +changed during the second handler execution exactly because we'd been +on altstack all along. 64bit sigreturn on sparc treats any error from +do_sigaltstack() as "SIGSEGV now"; we need to switch to the same semantics +we are using on other architectures. + +Signed-off-by: Al Viro +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + arch/sparc/kernel/signal_64.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +--- a/arch/sparc/kernel/signal_64.c ++++ b/arch/sparc/kernel/signal_64.c +@@ -309,9 +309,7 @@ void do_rt_sigreturn(struct pt_regs *reg + err |= restore_fpu_state(regs, fpu_save); + + err |= __copy_from_user(&set, &sf->mask, sizeof(sigset_t)); +- err |= do_sigaltstack(&sf->stack, NULL, (unsigned long)sf); +- +- if (err) ++ if (err || do_sigaltstack(&sf->stack, NULL, (unsigned long)sf) == -EFAULT) + goto segv; + + err |= __get_user(rwin_save, &sf->rwin_save);