From: Greg Kroah-Hartman Date: Wed, 8 Aug 2012 15:51:55 +0000 (-0700) Subject: 3.4-stable patches X-Git-Tag: v3.5.1~2^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a7688025740280623af4494d3deba03fa5fd14ad;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: asus-wmi-use-asus_wmi_methodid_dsts2-as-default-dsts-id.patch redefine-atomic_init-and-atomic64_init-to-drop-the-casts.patch sunrpc-clnt-add-missing-braces.patch sunrpc-return-negative-value-in-case-rpcbind-client-creation-error.patch --- diff --git a/queue-3.4/asus-wmi-use-asus_wmi_methodid_dsts2-as-default-dsts-id.patch b/queue-3.4/asus-wmi-use-asus_wmi_methodid_dsts2-as-default-dsts-id.patch new file mode 100644 index 00000000000..d4dac5d3ede --- /dev/null +++ b/queue-3.4/asus-wmi-use-asus_wmi_methodid_dsts2-as-default-dsts-id.patch @@ -0,0 +1,41 @@ +From 63a78bb1051b240417daad3a3fa9c1bb10646dca Mon Sep 17 00:00:00 2001 +From: Alex Hung +Date: Wed, 20 Jun 2012 11:47:35 +0800 +Subject: asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID. + +From: Alex Hung + +commit 63a78bb1051b240417daad3a3fa9c1bb10646dca upstream. + +According to responses from the BIOS team, ASUS_WMI_METHODID_DSTS2 +(0x53545344) will be used as future DSTS ID. In addition, calling +asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL) returns +ASUS_WMI_UNSUPPORTED_METHOD in new ASUS laptop PCs. This patch fixes +no DSTS ID will be assigned in this case. + +Signed-off-by: Alex Hung +Signed-off-by: Matthew Garrett +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/platform/x86/asus-wmi.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +--- a/drivers/platform/x86/asus-wmi.c ++++ b/drivers/platform/x86/asus-wmi.c +@@ -1467,14 +1467,9 @@ static int asus_wmi_platform_init(struct + */ + if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS, 0, 0, NULL)) + asus->dsts_id = ASUS_WMI_METHODID_DSTS; +- else if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL)) ++ else + asus->dsts_id = ASUS_WMI_METHODID_DSTS2; + +- if (!asus->dsts_id) { +- pr_err("Can't find DSTS"); +- return -ENODEV; +- } +- + /* CWAP allow to define the behavior of the Fn+F2 key, + * this method doesn't seems to be present on Eee PCs */ + if (asus->driver->quirks->wapf >= 0) diff --git a/queue-3.4/redefine-atomic_init-and-atomic64_init-to-drop-the-casts.patch b/queue-3.4/redefine-atomic_init-and-atomic64_init-to-drop-the-casts.patch new file mode 100644 index 00000000000..84743599f9d --- /dev/null +++ b/queue-3.4/redefine-atomic_init-and-atomic64_init-to-drop-the-casts.patch @@ -0,0 +1,68 @@ +From a119365586b0130dfea06457f584953e0ff6481d Mon Sep 17 00:00:00 2001 +From: Tony Luck +Date: Thu, 26 Jul 2012 10:55:26 -0700 +Subject: [IA64] Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts + +From: Tony Luck + +commit a119365586b0130dfea06457f584953e0ff6481d upstream. + +The following build error occured during a ia64 build with +swap-over-NFS patches applied. + +net/core/sock.c:274:36: error: initializer element is not constant +net/core/sock.c:274:36: error: (near initialization for 'memalloc_socks') +net/core/sock.c:274:36: error: initializer element is not constant + +This is identical to a parisc build error. Fengguang Wu, Mel Gorman +and James Bottomley did all the legwork to track the root cause of +the problem. This fix and entire commit log is shamelessly copied +from them with one extra detail to change a dubious runtime use of +ATOMIC_INIT() to atomic_set() in drivers/char/mspec.c + +Dave Anglin says: +> Here is the line in sock.i: +> +> struct static_key memalloc_socks = ((struct static_key) { .enabled = +> ((atomic_t) { (0) }) }); + +The above line contains two compound literals. It also uses a designated +initializer to initialize the field enabled. A compound literal is not a +constant expression. + +The location of the above statement isn't fully clear, but if a compound +literal occurs outside the body of a function, the initializer list must +consist of constant expressions. + +Signed-off-by: Tony Luck +Signed-off-by: Greg Kroah-Hartman + +--- + arch/ia64/include/asm/atomic.h | 4 ++-- + drivers/char/mspec.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +--- a/arch/ia64/include/asm/atomic.h ++++ b/arch/ia64/include/asm/atomic.h +@@ -17,8 +17,8 @@ + #include + + +-#define ATOMIC_INIT(i) ((atomic_t) { (i) }) +-#define ATOMIC64_INIT(i) ((atomic64_t) { (i) }) ++#define ATOMIC_INIT(i) { (i) } ++#define ATOMIC64_INIT(i) { (i) } + + #define atomic_read(v) (*(volatile int *)&(v)->counter) + #define atomic64_read(v) (*(volatile long *)&(v)->counter) +--- a/drivers/char/mspec.c ++++ b/drivers/char/mspec.c +@@ -283,7 +283,7 @@ mspec_mmap(struct file *file, struct vm_ + vdata->flags = flags; + vdata->type = type; + spin_lock_init(&vdata->lock); +- vdata->refcnt = ATOMIC_INIT(1); ++ atomic_set(&vdata->refcnt, 1); + vma->vm_private_data = vdata; + + vma->vm_flags |= (VM_IO | VM_RESERVED | VM_PFNMAP | VM_DONTEXPAND); diff --git a/queue-3.4/series b/queue-3.4/series new file mode 100644 index 00000000000..bf8f6a16070 --- /dev/null +++ b/queue-3.4/series @@ -0,0 +1,4 @@ +redefine-atomic_init-and-atomic64_init-to-drop-the-casts.patch +asus-wmi-use-asus_wmi_methodid_dsts2-as-default-dsts-id.patch +sunrpc-clnt-add-missing-braces.patch +sunrpc-return-negative-value-in-case-rpcbind-client-creation-error.patch diff --git a/queue-3.4/sunrpc-clnt-add-missing-braces.patch b/queue-3.4/sunrpc-clnt-add-missing-braces.patch new file mode 100644 index 00000000000..5bcf9d2c2a1 --- /dev/null +++ b/queue-3.4/sunrpc-clnt-add-missing-braces.patch @@ -0,0 +1,38 @@ +From cac5d07e3ca696dcacfb123553cf6c722111cfd3 Mon Sep 17 00:00:00 2001 +From: Joe Perches +Date: Wed, 18 Jul 2012 11:17:11 -0700 +Subject: sunrpc: clnt: Add missing braces + +From: Joe Perches + +commit cac5d07e3ca696dcacfb123553cf6c722111cfd3 upstream. + +Add a missing set of braces that commit 4e0038b6b24 +("SUNRPC: Move clnt->cl_server into struct rpc_xprt") +forgot. + +Signed-off-by: Joe Perches +Signed-off-by: Trond Myklebust +Signed-off-by: Greg Kroah-Hartman + +--- + net/sunrpc/clnt.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/net/sunrpc/clnt.c ++++ b/net/sunrpc/clnt.c +@@ -1846,12 +1846,13 @@ call_timeout(struct rpc_task *task) + return; + } + if (RPC_IS_SOFT(task)) { +- if (clnt->cl_chatty) ++ if (clnt->cl_chatty) { + rcu_read_lock(); + printk(KERN_NOTICE "%s: server %s not responding, timed out\n", + clnt->cl_protname, + rcu_dereference(clnt->cl_xprt)->servername); + rcu_read_unlock(); ++ } + if (task->tk_flags & RPC_TASK_TIMEOUT) + rpc_exit(task, -ETIMEDOUT); + else diff --git a/queue-3.4/sunrpc-return-negative-value-in-case-rpcbind-client-creation-error.patch b/queue-3.4/sunrpc-return-negative-value-in-case-rpcbind-client-creation-error.patch new file mode 100644 index 00000000000..893b77bdd20 --- /dev/null +++ b/queue-3.4/sunrpc-return-negative-value-in-case-rpcbind-client-creation-error.patch @@ -0,0 +1,42 @@ +From caea33da898e4e14f0ba58173e3b7689981d2c0b Mon Sep 17 00:00:00 2001 +From: Stanislav Kinsbursky +Date: Fri, 20 Jul 2012 15:57:48 +0400 +Subject: SUNRPC: return negative value in case rpcbind client creation error + +From: Stanislav Kinsbursky + +commit caea33da898e4e14f0ba58173e3b7689981d2c0b upstream. + +Without this patch kernel will panic on LockD start, because lockd_up() checks +lockd_up_net() result for negative value. +From my pow it's better to return negative value from rpcbind routines instead +of replacing all such checks like in lockd_up(). + +Signed-off-by: Stanislav Kinsbursky +Signed-off-by: Trond Myklebust +Signed-off-by: Greg Kroah-Hartman + +--- + net/sunrpc/rpcb_clnt.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/net/sunrpc/rpcb_clnt.c ++++ b/net/sunrpc/rpcb_clnt.c +@@ -251,7 +251,7 @@ static int rpcb_create_local_unix(struct + if (IS_ERR(clnt)) { + dprintk("RPC: failed to create AF_LOCAL rpcbind " + "client (errno %ld).\n", PTR_ERR(clnt)); +- result = -PTR_ERR(clnt); ++ result = PTR_ERR(clnt); + goto out; + } + +@@ -298,7 +298,7 @@ static int rpcb_create_local_net(struct + if (IS_ERR(clnt)) { + dprintk("RPC: failed to create local rpcbind " + "client (errno %ld).\n", PTR_ERR(clnt)); +- result = -PTR_ERR(clnt); ++ result = PTR_ERR(clnt); + goto out; + } +