]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Aug 2012 15:51:55 +0000 (08:51 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Aug 2012 15:51:55 +0000 (08:51 -0700)
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

queue-3.4/asus-wmi-use-asus_wmi_methodid_dsts2-as-default-dsts-id.patch [new file with mode: 0644]
queue-3.4/redefine-atomic_init-and-atomic64_init-to-drop-the-casts.patch [new file with mode: 0644]
queue-3.4/series [new file with mode: 0644]
queue-3.4/sunrpc-clnt-add-missing-braces.patch [new file with mode: 0644]
queue-3.4/sunrpc-return-negative-value-in-case-rpcbind-client-creation-error.patch [new file with mode: 0644]

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 (file)
index 0000000..d4dac5d
--- /dev/null
@@ -0,0 +1,41 @@
+From 63a78bb1051b240417daad3a3fa9c1bb10646dca Mon Sep 17 00:00:00 2001
+From: Alex Hung <alex.hung@canonical.com>
+Date: Wed, 20 Jun 2012 11:47:35 +0800
+Subject: asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.
+
+From: Alex Hung <alex.hung@canonical.com>
+
+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 <alex.hung@canonical.com>
+Signed-off-by: Matthew Garrett <mjg@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..8474359
--- /dev/null
@@ -0,0 +1,68 @@
+From a119365586b0130dfea06457f584953e0ff6481d Mon Sep 17 00:00:00 2001
+From: Tony Luck <tony.luck@intel.com>
+Date: Thu, 26 Jul 2012 10:55:26 -0700
+Subject: [IA64] Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts
+
+From: Tony Luck <tony.luck@intel.com>
+
+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 <tony.luck@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 <asm/intrinsics.h>
+-#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 (file)
index 0000000..bf8f6a1
--- /dev/null
@@ -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 (file)
index 0000000..5bcf9d2
--- /dev/null
@@ -0,0 +1,38 @@
+From cac5d07e3ca696dcacfb123553cf6c722111cfd3 Mon Sep 17 00:00:00 2001
+From: Joe Perches <joe@perches.com>
+Date: Wed, 18 Jul 2012 11:17:11 -0700
+Subject: sunrpc: clnt: Add missing braces
+
+From: Joe Perches <joe@perches.com>
+
+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 <joe@perches.com>
+Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..893b77b
--- /dev/null
@@ -0,0 +1,42 @@
+From caea33da898e4e14f0ba58173e3b7689981d2c0b Mon Sep 17 00:00:00 2001
+From: Stanislav Kinsbursky <skinsbursky@parallels.com>
+Date: Fri, 20 Jul 2012 15:57:48 +0400
+Subject: SUNRPC: return negative value in case rpcbind client creation error
+
+From: Stanislav Kinsbursky <skinsbursky@parallels.com>
+
+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 <skinsbursky@parallels.com>
+Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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;
+       }