From: Greg Kroah-Hartman Date: Wed, 18 Dec 2013 20:42:30 +0000 (-0800) Subject: 3.12-stable patches X-Git-Tag: v3.4.75~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=49bcb24b946aa226ced078286c4adc2326a6ddac;p=thirdparty%2Fkernel%2Fstable-queue.git 3.12-stable patches added patches: input-elantech-add-support-for-newer-august-2013-devices.patch nfsv4-wait-on-recovery-for-async-session-errors.patch revert-net-update-consumers-of-msg_more-to-recognize-msg_sendpage_notlast.patch sc1200_wdt-fix-oops.patch --- diff --git a/queue-3.12/input-elantech-add-support-for-newer-august-2013-devices.patch b/queue-3.12/input-elantech-add-support-for-newer-august-2013-devices.patch new file mode 100644 index 00000000000..ba16ee8e504 --- /dev/null +++ b/queue-3.12/input-elantech-add-support-for-newer-august-2013-devices.patch @@ -0,0 +1,34 @@ +From 9cb80b965eaf7af1369f6e16f48a05fbaaccc021 Mon Sep 17 00:00:00 2001 +From: Matt Walker +Date: Thu, 5 Dec 2013 12:39:02 -0800 +Subject: Input: elantech - add support for newer (August 2013) devices + +From: Matt Walker + +commit 9cb80b965eaf7af1369f6e16f48a05fbaaccc021 upstream. + +Added detection for newer Elantech touchpads, so that kernel doesn't +fall-back to default PS/2 driver. Supports touchpads released after +~August 2013. Fixes bug: +https://lists.launchpad.net/kernel-packages/msg18481.html + +Tested on an Acer Aspire S7-392-6302. + +Signed-off by: Matt Walker +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/input/mouse/elantech.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/input/mouse/elantech.c ++++ b/drivers/input/mouse/elantech.c +@@ -1313,6 +1313,7 @@ static int elantech_set_properties(struc + break; + case 6: + case 7: ++ case 8: + etd->hw_version = 4; + break; + default: diff --git a/queue-3.12/nfsv4-wait-on-recovery-for-async-session-errors.patch b/queue-3.12/nfsv4-wait-on-recovery-for-async-session-errors.patch new file mode 100644 index 00000000000..4364926b8ff --- /dev/null +++ b/queue-3.12/nfsv4-wait-on-recovery-for-async-session-errors.patch @@ -0,0 +1,73 @@ +From 4a82fd7c4e78a1b7a224f9ae8bb7e1fd95f670e0 Mon Sep 17 00:00:00 2001 +From: Andy Adamson +Date: Fri, 15 Nov 2013 16:36:16 -0500 +Subject: NFSv4 wait on recovery for async session errors + +From: Andy Adamson + +commit 4a82fd7c4e78a1b7a224f9ae8bb7e1fd95f670e0 upstream. + +When the state manager is processing the NFS4CLNT_DELEGRETURN flag, session +draining is off, but DELEGRETURN can still get a session error. +The async handler calls nfs4_schedule_session_recovery returns -EAGAIN, and +the DELEGRETURN done then restarts the RPC task in the prepare state. +With the state manager still processing the NFS4CLNT_DELEGRETURN flag with +session draining off, these DELEGRETURNs will cycle with errors filling up the +session slots. + +This prevents OPEN reclaims (from nfs_delegation_claim_opens) required by the +NFS4CLNT_DELEGRETURN state manager processing from completing, hanging the +state manager in the __rpc_wait_for_completion_task in nfs4_run_open_task +as seen in this kernel thread dump: + +kernel: 4.12.32.53-ma D 0000000000000000 0 3393 2 0x00000000 +kernel: ffff88013995fb60 0000000000000046 ffff880138cc5400 ffff88013a9df140 +kernel: ffff8800000265c0 ffffffff8116eef0 ffff88013fc10080 0000000300000001 +kernel: ffff88013a4ad058 ffff88013995ffd8 000000000000fbc8 ffff88013a4ad058 +kernel: Call Trace: +kernel: [] ? cache_alloc_refill+0x1c0/0x240 +kernel: [] ? rpc_wait_bit_killable+0x0/0xa0 [sunrpc] +kernel: [] rpc_wait_bit_killable+0x42/0xa0 [sunrpc] +kernel: [] __wait_on_bit+0x5f/0x90 +kernel: [] ? rpc_wait_bit_killable+0x0/0xa0 [sunrpc] +kernel: [] out_of_line_wait_on_bit+0x78/0x90 +kernel: [] ? wake_bit_function+0x0/0x50 +kernel: [] __rpc_wait_for_completion_task+0x2d/0x30 [sunrpc] +kernel: [] nfs4_run_open_task+0x11c/0x160 [nfs] +kernel: [] nfs4_open_recover_helper+0x87/0x120 [nfs] +kernel: [] nfs4_open_recover+0xc6/0x150 [nfs] +kernel: [] ? nfs4_open_recoverdata_alloc+0x2f/0x60 [nfs] +kernel: [] nfs4_open_delegation_recall+0x6a/0xa0 [nfs] +kernel: [] nfs_end_delegation_return+0x120/0x2e0 [nfs] +kernel: [] ? queue_work+0x1f/0x30 +kernel: [] nfs_client_return_marked_delegations+0xd7/0x110 [nfs] +kernel: [] nfs4_run_state_manager+0x548/0x620 [nfs] +kernel: [] ? nfs4_run_state_manager+0x0/0x620 [nfs] +kernel: [] kthread+0x96/0xa0 +kernel: [] child_rip+0xa/0x20 +kernel: [] ? kthread+0x0/0xa0 +kernel: [] ? child_rip+0x0/0x20 + +The state manager can not therefore process the DELEGRETURN session errors. +Change the async handler to wait for recovery on session errors. + +Signed-off-by: Andy Adamson +Signed-off-by: Trond Myklebust +Signed-off-by: Greg Kroah-Hartman + +--- + fs/nfs/nfs4proc.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -4752,8 +4752,7 @@ nfs4_async_handle_error(struct rpc_task + dprintk("%s ERROR %d, Reset session\n", __func__, + task->tk_status); + nfs4_schedule_session_recovery(clp->cl_session, task->tk_status); +- task->tk_status = 0; +- return -EAGAIN; ++ goto wait_on_recovery; + #endif /* CONFIG_NFS_V4_1 */ + case -NFS4ERR_DELAY: + nfs_inc_server_stats(server, NFSIOS_DELAY); diff --git a/queue-3.12/revert-net-update-consumers-of-msg_more-to-recognize-msg_sendpage_notlast.patch b/queue-3.12/revert-net-update-consumers-of-msg_more-to-recognize-msg_sendpage_notlast.patch new file mode 100644 index 00000000000..c689fc6d2ac --- /dev/null +++ b/queue-3.12/revert-net-update-consumers-of-msg_more-to-recognize-msg_sendpage_notlast.patch @@ -0,0 +1,61 @@ +From foo@baz Wed Dec 18 12:40:45 PST 2013 +Date: Wed, 18 Dec 2013 12:40:45 -0800 +To: Greg KH +From: Greg Kroah-Hartman +Subject: Revert "net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST" + +It turns out that commit: d3f7d56a7a4671d395e8af87071068a195257bf6 was +applied to the tree twice, which didn't hurt anything, but it's good to +fix this up. + +Reported-by: Veaceslav Falico + +Cc: David S. Miller +Cc: Eric Dumazet +Cc: Richard Weinberger +Cc: Shawn Landden +Cc: Tom Herbert +Signed-off-by: Greg Kroah-Hartman + +--- + crypto/algif_hash.c | 3 --- + crypto/algif_skcipher.c | 3 --- + net/ipv4/udp.c | 3 --- + 3 files changed, 9 deletions(-) + +--- a/crypto/algif_hash.c ++++ b/crypto/algif_hash.c +@@ -117,9 +117,6 @@ static ssize_t hash_sendpage(struct sock + if (flags & MSG_SENDPAGE_NOTLAST) + flags |= MSG_MORE; + +- if (flags & MSG_SENDPAGE_NOTLAST) +- flags |= MSG_MORE; +- + lock_sock(sk); + sg_init_table(ctx->sgl.sg, 1); + sg_set_page(ctx->sgl.sg, page, size, offset); +--- a/crypto/algif_skcipher.c ++++ b/crypto/algif_skcipher.c +@@ -381,9 +381,6 @@ static ssize_t skcipher_sendpage(struct + if (flags & MSG_SENDPAGE_NOTLAST) + flags |= MSG_MORE; + +- if (flags & MSG_SENDPAGE_NOTLAST) +- flags |= MSG_MORE; +- + lock_sock(sk); + if (!ctx->more && ctx->used) + goto unlock; +--- a/net/ipv4/udp.c ++++ b/net/ipv4/udp.c +@@ -1075,9 +1075,6 @@ int udp_sendpage(struct sock *sk, struct + if (flags & MSG_SENDPAGE_NOTLAST) + flags |= MSG_MORE; + +- if (flags & MSG_SENDPAGE_NOTLAST) +- flags |= MSG_MORE; +- + if (!up->pending) { + struct msghdr msg = { .msg_flags = flags|MSG_MORE }; + diff --git a/queue-3.12/sc1200_wdt-fix-oops.patch b/queue-3.12/sc1200_wdt-fix-oops.patch new file mode 100644 index 00000000000..4440c12b385 --- /dev/null +++ b/queue-3.12/sc1200_wdt-fix-oops.patch @@ -0,0 +1,37 @@ +From dace8bbfccfd9e4fcccfffcfbd82881fda3e756f Mon Sep 17 00:00:00 2001 +From: Alan +Date: Wed, 4 Dec 2013 15:31:52 +0000 +Subject: sc1200_wdt: Fix oops + +From: Alan + +commit dace8bbfccfd9e4fcccfffcfbd82881fda3e756f upstream. + +If loaded with isapnp = 0 the driver explodes. This is catching +people out now and then. What should happen in the working case is +a complete mystery and the code appears terminally confused, but we +can at least make the error path work properly. + +Signed-off-by: Alan Cox +Reviewed-by: Guenter Roeck +Signed-off-by: Wim Van Sebroeck +Partially-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=53991 +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/watchdog/sc1200wdt.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/watchdog/sc1200wdt.c ++++ b/drivers/watchdog/sc1200wdt.c +@@ -409,8 +409,9 @@ static int __init sc1200wdt_init(void) + #if defined CONFIG_PNP + /* now that the user has specified an IO port and we haven't detected + * any devices, disable pnp support */ ++ if (isapnp) ++ pnp_unregister_driver(&scl200wdt_pnp_driver); + isapnp = 0; +- pnp_unregister_driver(&scl200wdt_pnp_driver); + #endif + + if (!request_region(io, io_len, SC1200_MODULE_NAME)) { diff --git a/queue-3.12/series b/queue-3.12/series index 377e7219c46..23b37845d01 100644 --- a/queue-3.12/series +++ b/queue-3.12/series @@ -99,3 +99,7 @@ cxd2820r_core-fix-sparse-warnings.patch sched-avoid-throttle_cfs_rq-racing-with-period_timer-stopping.patch staging-comedi-drivers-use-comedi_dio_update_state-for-simple-cases.patch staging-comedi-ssv_dnp-use-comedi_dio_update_state.patch +sc1200_wdt-fix-oops.patch +nfsv4-wait-on-recovery-for-async-session-errors.patch +input-elantech-add-support-for-newer-august-2013-devices.patch +revert-net-update-consumers-of-msg_more-to-recognize-msg_sendpage_notlast.patch