]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.13-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Mar 2014 21:03:52 +0000 (14:03 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Mar 2014 21:03:52 +0000 (14:03 -0700)
added patches:
deb-pkg-fix-building-for-mips-big-endian-or-arm-oabi.patch
deb-pkg-fix-cross-building-linux-headers-package.patch
fix-uses-of-dma_max_pfn-when-converting-to-a-limiting-address.patch
mips-fix-build-error-seen-in-some-configurations.patch
p54-clamp-properly-instead-of-just-truncating.patch
perf-tools-fix-aaaaargh64-memory-barriers.patch
printk-fix-syslog-overflowing-user-buffer.patch
regulator-core-replace-direct-ops-disable-usage.patch
sunrpc-fix-a-pipe_version-reference-leak.patch
x86-bpf_jit-support-negative-offsets.patch

queue-3.13/deb-pkg-fix-building-for-mips-big-endian-or-arm-oabi.patch [new file with mode: 0644]
queue-3.13/deb-pkg-fix-cross-building-linux-headers-package.patch [new file with mode: 0644]
queue-3.13/fix-uses-of-dma_max_pfn-when-converting-to-a-limiting-address.patch [new file with mode: 0644]
queue-3.13/mips-fix-build-error-seen-in-some-configurations.patch [new file with mode: 0644]
queue-3.13/p54-clamp-properly-instead-of-just-truncating.patch [new file with mode: 0644]
queue-3.13/perf-tools-fix-aaaaargh64-memory-barriers.patch [new file with mode: 0644]
queue-3.13/printk-fix-syslog-overflowing-user-buffer.patch [new file with mode: 0644]
queue-3.13/regulator-core-replace-direct-ops-disable-usage.patch [new file with mode: 0644]
queue-3.13/series
queue-3.13/sunrpc-fix-a-pipe_version-reference-leak.patch [new file with mode: 0644]
queue-3.13/x86-bpf_jit-support-negative-offsets.patch [new file with mode: 0644]

diff --git a/queue-3.13/deb-pkg-fix-building-for-mips-big-endian-or-arm-oabi.patch b/queue-3.13/deb-pkg-fix-building-for-mips-big-endian-or-arm-oabi.patch
new file mode 100644 (file)
index 0000000..32805f9
--- /dev/null
@@ -0,0 +1,45 @@
+From c5e318f67eebbad491615a752c51dbfde7dc3d78 Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 5 Dec 2013 14:39:11 +0000
+Subject: deb-pkg: Fix building for MIPS big-endian or ARM OABI
+
+From: Ben Hutchings <ben@decadent.org.uk>
+
+commit c5e318f67eebbad491615a752c51dbfde7dc3d78 upstream.
+
+These commands will mysteriously fail:
+
+$ make ARCH=arm versatile_defconfig
+[...]
+$ make ARCH=arm deb-pkg
+[...]
+make[1]: *** [deb-pkg] Error 1
+make: *** [deb-pkg] Error 2
+
+The Debian architecture selection for these kernel architectures does
+'grep FOO=y $KCONFIG_CONFIG && echo bar', and after 'set -e' this
+aborts the script if grep does not find the given config symbol.
+
+Fixes: 10f26fa64200 ('build, deb-pkg: select userland architecture based on UTS_MACHINE')
+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 |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/scripts/package/builddeb
++++ b/scripts/package/builddeb
+@@ -41,9 +41,9 @@ create_package() {
+       parisc*)
+               debarch=hppa ;;
+       mips*)
+-              debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el) ;;
++              debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;;
+       arm*)
+-              debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el) ;;
++              debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;;
+       *)
+               echo "" >&2
+               echo "** ** **  WARNING  ** ** **" >&2
diff --git a/queue-3.13/deb-pkg-fix-cross-building-linux-headers-package.patch b/queue-3.13/deb-pkg-fix-cross-building-linux-headers-package.patch
new file mode 100644 (file)
index 0000000..b8f384f
--- /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" ..
+ }
+@@ -288,15 +288,14 @@ mkdir -p "$destdir"
+ (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be
+ 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.13/fix-uses-of-dma_max_pfn-when-converting-to-a-limiting-address.patch b/queue-3.13/fix-uses-of-dma_max_pfn-when-converting-to-a-limiting-address.patch
new file mode 100644 (file)
index 0000000..a08963b
--- /dev/null
@@ -0,0 +1,46 @@
+From e83b366487b5582274374f8226e489cb214ae5a6 Mon Sep 17 00:00:00 2001
+From: Russell King <rmk+kernel@arm.linux.org.uk>
+Date: Tue, 11 Feb 2014 17:11:04 +0000
+Subject: Fix uses of dma_max_pfn() when converting to a limiting address
+
+From: Russell King <rmk+kernel@arm.linux.org.uk>
+
+commit e83b366487b5582274374f8226e489cb214ae5a6 upstream.
+
+We must use a 64-bit for this, otherwise overflowed bits get lost, and
+that can result in a lower than intended value set.
+
+Fixes: 8e0cb8a1f6ac ("ARM: 7797/1: mmc: Use dma_max_pfn(dev) helper for bounce_limit calculations")
+Fixes: 7d35496dd982 ("ARM: 7796/1: scsi: Use dma_max_pfn(dev) helper for bounce_limit calculations")
+Tested-Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
+Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/mmc/card/queue.c |    2 +-
+ drivers/scsi/scsi_lib.c  |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/mmc/card/queue.c
++++ b/drivers/mmc/card/queue.c
+@@ -197,7 +197,7 @@ int mmc_init_queue(struct mmc_queue *mq,
+       struct mmc_queue_req *mqrq_prev = &mq->mqrq[1];
+       if (mmc_dev(host)->dma_mask && *mmc_dev(host)->dma_mask)
+-              limit = dma_max_pfn(mmc_dev(host)) << PAGE_SHIFT;
++              limit = (u64)dma_max_pfn(mmc_dev(host)) << PAGE_SHIFT;
+       mq->card = card;
+       mq->queue = blk_init_queue(mmc_request_fn, lock);
+--- a/drivers/scsi/scsi_lib.c
++++ b/drivers/scsi/scsi_lib.c
+@@ -1684,7 +1684,7 @@ u64 scsi_calculate_bounce_limit(struct S
+       host_dev = scsi_get_device(shost);
+       if (host_dev && host_dev->dma_mask)
+-              bounce_limit = dma_max_pfn(host_dev) << PAGE_SHIFT;
++              bounce_limit = (u64)dma_max_pfn(host_dev) << PAGE_SHIFT;
+       return bounce_limit;
+ }
diff --git a/queue-3.13/mips-fix-build-error-seen-in-some-configurations.patch b/queue-3.13/mips-fix-build-error-seen-in-some-configurations.patch
new file mode 100644 (file)
index 0000000..4f9fdf3
--- /dev/null
@@ -0,0 +1,38 @@
+From 63238f2cc5518e1c45a3418fc0ac0f560dafe7ef Mon Sep 17 00:00:00 2001
+From: Guenter Roeck <linux@roeck-us.net>
+Date: Mon, 25 Nov 2013 15:21:00 -0800
+Subject: MIPS: Fix build error seen in some configurations
+
+From: Guenter Roeck <linux@roeck-us.net>
+
+commit 63238f2cc5518e1c45a3418fc0ac0f560dafe7ef upstream.
+
+The following build error is seen if CONFIG_32BIT is undefined,
+CONFIG_64BIT is defined, and CONFIG_MIPS32_O32 is undefined.
+
+asm/syscall.h: In function 'mips_get_syscall_arg':
+arch/mips/include/asm/syscall.h:32:16: error: unused variable 'usp' [-Werror=unused-variable]
+cc1: all warnings being treated as errors
+
+Fixes: c0ff3c53d4f9 ('MIPS: Enable HAVE_ARCH_TRACEHOOK')
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Acked-by: David Daney <david.daney@cavium.com>
+Signed-off-by: John Crispin <blogic@openwrt.org>
+Patchwork: http://patchwork.linux-mips.org/patch/6160/
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/mips/include/asm/syscall.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/mips/include/asm/syscall.h
++++ b/arch/mips/include/asm/syscall.h
+@@ -29,7 +29,7 @@ static inline long syscall_get_nr(struct
+ static inline unsigned long mips_get_syscall_arg(unsigned long *arg,
+       struct task_struct *task, struct pt_regs *regs, unsigned int n)
+ {
+-      unsigned long usp = regs->regs[29];
++      unsigned long usp __maybe_unused = regs->regs[29];
+       switch (n) {
+       case 0: case 1: case 2: case 3:
diff --git a/queue-3.13/p54-clamp-properly-instead-of-just-truncating.patch b/queue-3.13/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.13/perf-tools-fix-aaaaargh64-memory-barriers.patch b/queue-3.13/perf-tools-fix-aaaaargh64-memory-barriers.patch
new file mode 100644 (file)
index 0000000..d9155fa
--- /dev/null
@@ -0,0 +1,38 @@
+From f428ebd184c82a7914b2aa7e9f868918aaf7ea78 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Fri, 24 Jan 2014 16:40:02 +0100
+Subject: perf tools: Fix AAAAARGH64 memory barriers
+
+From: Peter Zijlstra <peterz@infradead.org>
+
+commit f428ebd184c82a7914b2aa7e9f868918aaf7ea78 upstream.
+
+Someone got the load and store barriers mixed up for AAAAARGH64.  Turn
+them the right side up.
+
+Reported-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Peter Zijlstra <peterz@infradead.org>
+Fixes: a94d342b9cb0 ("tools/perf: Add required memory barriers")
+Cc: Ingo Molnar <mingo@kernel.org>
+Cc: Will Deacon <will.deacon@arm.com>
+Link: http://lkml.kernel.org/r/20140124154002.GF31570@twins.programming.kicks-ass.net
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ tools/perf/perf.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/tools/perf/perf.h
++++ b/tools/perf/perf.h
+@@ -100,8 +100,8 @@
+ #ifdef __aarch64__
+ #define mb()          asm volatile("dmb ish" ::: "memory")
+-#define wmb()         asm volatile("dmb ishld" ::: "memory")
+-#define rmb()         asm volatile("dmb ishst" ::: "memory")
++#define wmb()         asm volatile("dmb ishst" ::: "memory")
++#define rmb()         asm volatile("dmb ishld" ::: "memory")
+ #define cpu_relax()   asm volatile("yield" ::: "memory")
+ #endif
diff --git a/queue-3.13/printk-fix-syslog-overflowing-user-buffer.patch b/queue-3.13/printk-fix-syslog-overflowing-user-buffer.patch
new file mode 100644 (file)
index 0000000..e58bbe5
--- /dev/null
@@ -0,0 +1,62 @@
+From e4178d809fdaee32a56833fff1f5056c99e90a1a Mon Sep 17 00:00:00 2001
+From: Linus Torvalds <torvalds@linux-foundation.org>
+Date: Mon, 17 Feb 2014 12:24:45 -0800
+Subject: printk: fix syslog() overflowing user buffer
+
+From: Linus Torvalds <torvalds@linux-foundation.org>
+
+commit e4178d809fdaee32a56833fff1f5056c99e90a1a upstream.
+
+This is not a buffer overflow in the traditional sense: we don't
+overflow any *kernel* buffers, but we do mis-count the amount of data we
+copy back to user space for the SYSLOG_ACTION_READ_ALL case.
+
+In particular, if the user buffer is too small to hold everything, and
+*if* there is a continuation line at just the right place, we can end up
+giving the user more data than he asked for.
+
+The reason is that we first count up the number of bytes all the log
+records contains, then we walk the records again until we've skipped the
+records at the beginning that won't fit, and then we walk the rest of
+the records and copy them to the user space buffer.
+
+And in between that "skip the initial records that won't fit" and the
+"copy the records that *will* fit to user space", we reset the 'prev'
+variable that contained the record information for the last record not
+copied.  That meant that when we started copying to user space, we now
+had a different character count than what we had originally calculated
+in the first record walk-through.
+
+The fix is to simply not clear the 'prev' flags value (in both cases
+where we had the same logic: syslog_print_all and kmsg_dump_get_buffer:
+the latter is used for pstore-like dumping)
+
+Reported-and-tested-by: Debabrata Banerjee <dbanerje@akamai.com>
+Acked-by: Kay Sievers <kay@vrfy.org>
+Cc: Jeff Mahoney <jeffm@suse.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Josh Hunt <joshhunt00@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/printk/printk.c |    2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -1080,7 +1080,6 @@ static int syslog_print_all(char __user
+               next_seq = log_next_seq;
+               len = 0;
+-              prev = 0;
+               while (len >= 0 && seq < next_seq) {
+                       struct printk_log *msg = log_from_idx(idx);
+                       int textlen;
+@@ -2789,7 +2788,6 @@ bool kmsg_dump_get_buffer(struct kmsg_du
+       next_idx = idx;
+       l = 0;
+-      prev = 0;
+       while (seq < dumper->next_seq) {
+               struct printk_log *msg = log_from_idx(idx);
diff --git a/queue-3.13/regulator-core-replace-direct-ops-disable-usage.patch b/queue-3.13/regulator-core-replace-direct-ops-disable-usage.patch
new file mode 100644 (file)
index 0000000..0ce41db
--- /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
+@@ -1908,8 +1908,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;
+ }
+@@ -1933,6 +1931,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;
+@@ -1985,20 +1985,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;
+ }
+ /**
+@@ -3631,8 +3627,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);
+@@ -3641,12 +3635,10 @@ int regulator_suspend_finish(void)
+               } else {
+                       if (!have_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;
+               }
+@@ -3820,7 +3812,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);
+@@ -3841,7 +3833,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 b909c71c0c19473fa5017865f2bfef5d53d9ead5..d35615aed3941d405ac81d065a8feb1be1435d92 100644 (file)
@@ -18,3 +18,13 @@ asoc-max98090-make-revision_id-readable.patch
 stop_machine-fix-2-race-between-stop_two_cpus-and-stop_cpus.patch
 sfc-use-the-correct-maximum-tx-dma-ring-size-for-sfc9100.patch
 arm-7941-2-fix-incorrect-fdt-initrd-parameter-override.patch
+sunrpc-fix-a-pipe_version-reference-leak.patch
+x86-bpf_jit-support-negative-offsets.patch
+printk-fix-syslog-overflowing-user-buffer.patch
+fix-uses-of-dma_max_pfn-when-converting-to-a-limiting-address.patch
+perf-tools-fix-aaaaargh64-memory-barriers.patch
+deb-pkg-fix-building-for-mips-big-endian-or-arm-oabi.patch
+deb-pkg-fix-cross-building-linux-headers-package.patch
+mips-fix-build-error-seen-in-some-configurations.patch
+p54-clamp-properly-instead-of-just-truncating.patch
+regulator-core-replace-direct-ops-disable-usage.patch
diff --git a/queue-3.13/sunrpc-fix-a-pipe_version-reference-leak.patch b/queue-3.13/sunrpc-fix-a-pipe_version-reference-leak.patch
new file mode 100644 (file)
index 0000000..c3ea2ee
--- /dev/null
@@ -0,0 +1,37 @@
+From e9776d0f4adee8877145672f6416b06b57f2dc27 Mon Sep 17 00:00:00 2001
+From: Trond Myklebust <trond.myklebust@primarydata.com>
+Date: Sun, 16 Feb 2014 13:28:01 -0500
+Subject: SUNRPC: Fix a pipe_version reference leak
+
+From: Trond Myklebust <trond.myklebust@primarydata.com>
+
+commit e9776d0f4adee8877145672f6416b06b57f2dc27 upstream.
+
+In gss_alloc_msg(), if the call to gss_encode_v1_msg() fails, we
+want to release the reference to the pipe_version that was obtained
+earlier in the function.
+
+Fixes: 9d3a2260f0f4b (SUNRPC: Fix buffer overflow checking in...)
+Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/sunrpc/auth_gss/auth_gss.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/net/sunrpc/auth_gss/auth_gss.c
++++ b/net/sunrpc/auth_gss/auth_gss.c
+@@ -500,10 +500,12 @@ gss_alloc_msg(struct gss_auth *gss_auth,
+       default:
+               err = gss_encode_v1_msg(gss_msg, service_name, gss_auth->target_name);
+               if (err)
+-                      goto err_free_msg;
++                      goto err_put_pipe_version;
+       };
+       kref_get(&gss_auth->kref);
+       return gss_msg;
++err_put_pipe_version:
++      put_pipe_version(gss_auth->net);
+ err_free_msg:
+       kfree(gss_msg);
+ err:
diff --git a/queue-3.13/x86-bpf_jit-support-negative-offsets.patch b/queue-3.13/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;                                        \