]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Aug 2013 06:05:47 +0000 (23:05 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Aug 2013 06:05:47 +0000 (23:05 -0700)
added patches:
scsi-nsp32-use-mdelay-instead-of-large-udelay-constants.patch
tracing-fix-fields-of-struct-trace_iterator-that-are-zeroed-by-mistake.patch

queue-3.4/scsi-nsp32-use-mdelay-instead-of-large-udelay-constants.patch [new file with mode: 0644]
queue-3.4/series
queue-3.4/tracing-fix-fields-of-struct-trace_iterator-that-are-zeroed-by-mistake.patch [new file with mode: 0644]

diff --git a/queue-3.4/scsi-nsp32-use-mdelay-instead-of-large-udelay-constants.patch b/queue-3.4/scsi-nsp32-use-mdelay-instead-of-large-udelay-constants.patch
new file mode 100644 (file)
index 0000000..8345511
--- /dev/null
@@ -0,0 +1,34 @@
+From b497ceb964a80ebada3b9b3cea4261409039e25a Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Thu, 14 Mar 2013 15:21:36 +0100
+Subject: SCSI: nsp32: use mdelay instead of large udelay constants
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit b497ceb964a80ebada3b9b3cea4261409039e25a upstream.
+
+ARM cannot handle udelay for more than 2 miliseconds, so we
+should use mdelay instead for those.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Acked-by: GOTO Masanori <gotom@debian.or.jp>
+Cc: YOKOTA Hiroshi <yokota@netlab.is.tsukuba.ac.jp>
+Cc: "James E.J. Bottomley" <JBottomley@parallels.com>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/scsi/nsp32.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/scsi/nsp32.c
++++ b/drivers/scsi/nsp32.c
+@@ -2926,7 +2926,7 @@ static void nsp32_do_bus_reset(nsp32_hw_
+        * reset SCSI bus
+        */
+       nsp32_write1(base, SCSI_BUS_CONTROL, BUSCTL_RST);
+-      udelay(RESET_HOLD_TIME);
++      mdelay(RESET_HOLD_TIME / 1000);
+       nsp32_write1(base, SCSI_BUS_CONTROL, 0);
+       for(i = 0; i < 5; i++) {
+               intrdat = nsp32_read2(base, IRQ_STATUS); /* dummy read */
index 08cd8fbab0a08b47e8a3a76fb44731d2a33e39e1..c84e3c3dbd60aecc6723a6a69f11a2d6cce8dc51 100644 (file)
@@ -11,3 +11,5 @@ ext4-fix-mount-remount-error-messages-for-incompatible-mount-options.patch
 cifs-extend-the-buffer-length-enought-for-sprintf-using.patch
 usb-core-don-t-try-to-reset_device-a-port-that-got-just-disconnected.patch
 debugfs-debugfs_remove_recursive-must-not-rely-on-list_empty-d_subdirs.patch
+tracing-fix-fields-of-struct-trace_iterator-that-are-zeroed-by-mistake.patch
+scsi-nsp32-use-mdelay-instead-of-large-udelay-constants.patch
diff --git a/queue-3.4/tracing-fix-fields-of-struct-trace_iterator-that-are-zeroed-by-mistake.patch b/queue-3.4/tracing-fix-fields-of-struct-trace_iterator-that-are-zeroed-by-mistake.patch
new file mode 100644 (file)
index 0000000..e4450b8
--- /dev/null
@@ -0,0 +1,66 @@
+From ed5467da0e369e65b247b99eb6403cb79172bcda Mon Sep 17 00:00:00 2001
+From: Andrew Vagin <avagin@openvz.org>
+Date: Fri, 2 Aug 2013 21:16:43 +0400
+Subject: tracing: Fix fields of struct trace_iterator that are zeroed by mistake
+
+From: Andrew Vagin <avagin@openvz.org>
+
+commit ed5467da0e369e65b247b99eb6403cb79172bcda upstream.
+
+tracing_read_pipe zeros all fields bellow "seq". The declaration contains
+a comment about that, but it doesn't help.
+
+The first field is "snapshot", it's true when current open file is
+snapshot. Looks obvious, that it should not be zeroed.
+
+The second field is "started". It was converted from cpumask_t to
+cpumask_var_t (v2.6.28-4983-g4462344), in other words it was
+converted from cpumask to pointer on cpumask.
+
+Currently the reference on "started" memory is lost after the first read
+from tracing_read_pipe and a proper object will never be freed.
+
+The "started" is never dereferenced for trace_pipe, because trace_pipe
+can't have the TRACE_FILE_ANNOTATE options.
+
+Link: http://lkml.kernel.org/r/1375463803-3085183-1-git-send-email-avagin@openvz.org
+
+Signed-off-by: Andrew Vagin <avagin@openvz.org>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/linux/ftrace_event.h |    4 +++-
+ kernel/trace/trace.c         |    1 +
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+--- a/include/linux/ftrace_event.h
++++ b/include/linux/ftrace_event.h
+@@ -71,6 +71,8 @@ struct trace_iterator {
+       /* trace_seq for __print_flags() and __print_symbolic() etc. */
+       struct trace_seq        tmp_seq;
++      cpumask_var_t           started;
++
+       /* The below is zeroed out in pipe_read */
+       struct trace_seq        seq;
+       struct trace_entry      *ent;
+@@ -83,7 +85,7 @@ struct trace_iterator {
+       loff_t                  pos;
+       long                    idx;
+-      cpumask_var_t           started;
++      /* All new field here will be zeroed out in pipe_read */
+ };
+--- a/kernel/trace/trace.c
++++ b/kernel/trace/trace.c
+@@ -3478,6 +3478,7 @@ waitagain:
+       memset(&iter->seq, 0,
+              sizeof(struct trace_iterator) -
+              offsetof(struct trace_iterator, seq));
++      cpumask_clear(iter->started);
+       iter->pos = -1;
+       trace_event_read_lock();