]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Mar 2014 21:03:50 +0000 (14:03 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Mar 2014 21:03:50 +0000 (14:03 -0700)
added patches:
deb-pkg-fix-cross-building-linux-headers-package.patch
p54-clamp-properly-instead-of-just-truncating.patch
regulator-core-replace-direct-ops-disable-usage.patch
x86-bpf_jit-support-negative-offsets.patch

queue-3.10/deb-pkg-fix-cross-building-linux-headers-package.patch [new file with mode: 0644]
queue-3.10/p54-clamp-properly-instead-of-just-truncating.patch [new file with mode: 0644]
queue-3.10/regulator-core-replace-direct-ops-disable-usage.patch [new file with mode: 0644]
queue-3.10/series
queue-3.10/x86-bpf_jit-support-negative-offsets.patch [new file with mode: 0644]

diff --git a/queue-3.10/deb-pkg-fix-cross-building-linux-headers-package.patch b/queue-3.10/deb-pkg-fix-cross-building-linux-headers-package.patch
new file mode 100644 (file)
index 0000000..5485eaa
--- /dev/null
@@ -0,0 +1,58 @@
+From f8ce239dfc7ba9add41d9ecdc5e7810738f839fa Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 5 Dec 2013 14:37:35 +0000
+Subject: deb-pkg: Fix cross-building linux-headers package
+
+From: Ben Hutchings <ben@decadent.org.uk>
+
+commit f8ce239dfc7ba9add41d9ecdc5e7810738f839fa upstream.
+
+builddeb generates a control file that says the linux-headers package
+can only be built for the build system primary architecture.  This
+breaks cross-building configurations.  We should use $debarch for this
+instead.
+
+Since $debarch is not yet set when generating the control file, set
+Architecture: any and use control file variables to fill in the
+description.
+
+Fixes: cd8d60a20a45 ('kbuild: create linux-headers package in deb-pkg')
+Reported-and-tested-by: "Niew, Sh." <shniew@gmail.com>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Michal Marek <mmarek@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ scripts/package/builddeb |    9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+--- a/scripts/package/builddeb
++++ b/scripts/package/builddeb
+@@ -62,7 +62,7 @@ create_package() {
+       fi
+       # Create the package
+-      dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir"
++      dpkg-gencontrol -isp $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir"
+       dpkg --build "$pdir" ..
+ }
+@@ -252,15 +252,14 @@ mkdir -p "$destdir"
+ (cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
+ ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
+ rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
+-arch=$(dpkg --print-architecture)
+ cat <<EOF >> debian/control
+ Package: $kernel_headers_packagename
+ Provides: linux-headers, linux-headers-2.6
+-Architecture: $arch
+-Description: Linux kernel headers for $KERNELRELEASE on $arch
+- This package provides kernel header files for $KERNELRELEASE on $arch
++Architecture: any
++Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch}
++ This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch}
+  .
+  This is useful for people who need to build external modules
+ EOF
diff --git a/queue-3.10/p54-clamp-properly-instead-of-just-truncating.patch b/queue-3.10/p54-clamp-properly-instead-of-just-truncating.patch
new file mode 100644 (file)
index 0000000..673b664
--- /dev/null
@@ -0,0 +1,32 @@
+From 608cfbe4abaf76e9d732efd7ed1cfa3998163d91 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Mon, 13 Jan 2014 22:05:23 +0300
+Subject: p54: clamp properly instead of just truncating
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit 608cfbe4abaf76e9d732efd7ed1cfa3998163d91 upstream.
+
+The call to clamp_t() first truncates the variable signed 8 bit and as a
+result, the actual clamp is a no-op.
+
+Fixes: 0d78156eef1d ('p54: improve site survey')
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/p54/txrx.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/p54/txrx.c
++++ b/drivers/net/wireless/p54/txrx.c
+@@ -587,7 +587,7 @@ static void p54_rx_stats(struct p54_comm
+       chan = priv->curchan;
+       if (chan) {
+               struct survey_info *survey = &priv->survey[chan->hw_value];
+-              survey->noise = clamp_t(s8, priv->noise, -128, 127);
++              survey->noise = clamp(priv->noise, -128, 127);
+               survey->channel_time = priv->survey_raw.active;
+               survey->channel_time_tx = priv->survey_raw.tx;
+               survey->channel_time_busy = priv->survey_raw.tx +
diff --git a/queue-3.10/regulator-core-replace-direct-ops-disable-usage.patch b/queue-3.10/regulator-core-replace-direct-ops-disable-usage.patch
new file mode 100644 (file)
index 0000000..6636769
--- /dev/null
@@ -0,0 +1,115 @@
+From 66fda75f47dc583f1c187556e9a2c082dd64f8c6 Mon Sep 17 00:00:00 2001
+From: Markus Pargmann <mpa@pengutronix.de>
+Date: Thu, 20 Feb 2014 17:36:04 +0100
+Subject: regulator: core: Replace direct ops->disable usage
+
+From: Markus Pargmann <mpa@pengutronix.de>
+
+commit 66fda75f47dc583f1c187556e9a2c082dd64f8c6 upstream.
+
+There are many places where ops->disable is called directly. Instead we
+should use _regulator_do_disable() which also handles gpio regulators.
+
+To be able to use the wrapper function from _regulator_force_disable(),
+I moved the _notifier_call_chain() call from _regulator_do_disable() to
+_regulator_disable(). This way, _regulator_force_disable() can use
+different flags for _notifier_call_chain() without calling it twice.
+
+Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
+Signed-off-by: Mark Brown <broonie@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/regulator/core.c |   34 +++++++++++++---------------------
+ 1 file changed, 13 insertions(+), 21 deletions(-)
+
+--- a/drivers/regulator/core.c
++++ b/drivers/regulator/core.c
+@@ -1712,8 +1712,6 @@ static int _regulator_do_disable(struct
+       trace_regulator_disable_complete(rdev_get_name(rdev));
+-      _notifier_call_chain(rdev, REGULATOR_EVENT_DISABLE,
+-                           NULL);
+       return 0;
+ }
+@@ -1737,6 +1735,8 @@ static int _regulator_disable(struct reg
+                               rdev_err(rdev, "failed to disable\n");
+                               return ret;
+                       }
++                      _notifier_call_chain(rdev, REGULATOR_EVENT_DISABLE,
++                                      NULL);
+               }
+               rdev->use_count = 0;
+@@ -1789,20 +1789,16 @@ static int _regulator_force_disable(stru
+ {
+       int ret = 0;
+-      /* force disable */
+-      if (rdev->desc->ops->disable) {
+-              /* ah well, who wants to live forever... */
+-              ret = rdev->desc->ops->disable(rdev);
+-              if (ret < 0) {
+-                      rdev_err(rdev, "failed to force disable\n");
+-                      return ret;
+-              }
+-              /* notify other consumers that power has been forced off */
+-              _notifier_call_chain(rdev, REGULATOR_EVENT_FORCE_DISABLE |
+-                      REGULATOR_EVENT_DISABLE, NULL);
++      ret = _regulator_do_disable(rdev);
++      if (ret < 0) {
++              rdev_err(rdev, "failed to force disable\n");
++              return ret;
+       }
+-      return ret;
++      _notifier_call_chain(rdev, REGULATOR_EVENT_FORCE_DISABLE |
++                      REGULATOR_EVENT_DISABLE, NULL);
++
++      return 0;
+ }
+ /**
+@@ -3788,8 +3784,6 @@ int regulator_suspend_finish(void)
+       mutex_lock(&regulator_list_mutex);
+       list_for_each_entry(rdev, &regulator_list, list) {
+-              struct regulator_ops *ops = rdev->desc->ops;
+-
+               mutex_lock(&rdev->mutex);
+               if (rdev->use_count > 0  || rdev->constraints->always_on) {
+                       error = _regulator_do_enable(rdev);
+@@ -3798,12 +3792,10 @@ int regulator_suspend_finish(void)
+               } else {
+                       if (!has_full_constraints)
+                               goto unlock;
+-                      if (!ops->disable)
+-                              goto unlock;
+                       if (!_regulator_is_enabled(rdev))
+                               goto unlock;
+-                      error = ops->disable(rdev);
++                      error = _regulator_do_disable(rdev);
+                       if (error)
+                               ret = error;
+               }
+@@ -3993,7 +3985,7 @@ static int __init regulator_init_complet
+               ops = rdev->desc->ops;
+               c = rdev->constraints;
+-              if (!ops->disable || (c && c->always_on))
++              if (c && c->always_on)
+                       continue;
+               mutex_lock(&rdev->mutex);
+@@ -4014,7 +4006,7 @@ static int __init regulator_init_complet
+                       /* We log since this may kill the system if it
+                        * goes wrong. */
+                       rdev_info(rdev, "disabling\n");
+-                      ret = ops->disable(rdev);
++                      ret = _regulator_do_disable(rdev);
+                       if (ret != 0) {
+                               rdev_err(rdev, "couldn't disable: %d\n", ret);
+                       }
index ad1a98998ec0d1fe9f0a1fa1ee81db043e04f9e7..dc430ceb36ed54b00022d64efd5c3b550dc713b0 100644 (file)
@@ -7,3 +7,7 @@ media-cx18-check-for-allocation-failure-in-cx18_read_eeprom.patch
 libceph-block-i-o-when-pause-or-full-osd-map-flags-are-set.patch
 libceph-resend-all-writes-after-the-osdmap-loses-the-full-flag.patch
 asoc-max98090-make-revision_id-readable.patch
+x86-bpf_jit-support-negative-offsets.patch
+deb-pkg-fix-cross-building-linux-headers-package.patch
+p54-clamp-properly-instead-of-just-truncating.patch
+regulator-core-replace-direct-ops-disable-usage.patch
diff --git a/queue-3.10/x86-bpf_jit-support-negative-offsets.patch b/queue-3.10/x86-bpf_jit-support-negative-offsets.patch
new file mode 100644 (file)
index 0000000..83c97ad
--- /dev/null
@@ -0,0 +1,40 @@
+From fdfaf64e75397567257e1051931f9a3377360665 Mon Sep 17 00:00:00 2001
+From: Alexei Starovoitov <ast@plumgrid.com>
+Date: Mon, 10 Mar 2014 15:56:51 -0700
+Subject: x86: bpf_jit: support negative offsets
+
+From: Alexei Starovoitov <ast@plumgrid.com>
+
+commit fdfaf64e75397567257e1051931f9a3377360665 upstream.
+
+Commit a998d4342337 claimed to introduce negative offset support to x86 jit,
+but it couldn't be working, since at the time of the execution
+of LD+ABS or LD+IND instructions via call into
+bpf_internal_load_pointer_neg_helper() the %edx (3rd argument of this func)
+had junk value instead of access size in bytes (1 or 2 or 4).
+
+Store size into %edx instead of %ecx (what original commit intended to do)
+
+Fixes: a998d4342337 ("bpf jit: Let the x86 jit handle negative offsets")
+Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
+Cc: Jan Seiffert <kaffeemonster@googlemail.com>
+Cc: Eric Dumazet <edumazet@google.com>
+Acked-by: Eric Dumazet <edumazet@google.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/net/bpf_jit.S |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/net/bpf_jit.S
++++ b/arch/x86/net/bpf_jit.S
+@@ -140,7 +140,7 @@ bpf_slow_path_byte_msh:
+       push    %r9;                                            \
+       push    SKBDATA;                                        \
+ /* rsi already has offset */                                  \
+-      mov     $SIZE,%ecx;     /* size */                      \
++      mov     $SIZE,%edx;     /* size */                      \
+       call    bpf_internal_load_pointer_neg_helper;           \
+       test    %rax,%rax;                                      \
+       pop     SKBDATA;                                        \