History

Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: ftrace: Fix unmatched locking in ftrace_regex_write() ring-buffer: Synchronize resizing buffer with reader lock

Linus Torvalds committed 17 years ago

Commit 72cc1292 parents 411094a ed146b22 files · +5 −3Browse files

Unified · Split

2 files
  1. kernel/trace/ftrace.c +3 −3
  2. kernel/trace/ring_buffer.c +2 −0
kernel/trace/ftrace.c+3−3
@@ -2222,15 +2222,15 @@ ftrace_regex_write(struct file *file, const char __user *ubuf, · 2221 unmodified lines
2222 ret = ftrace_process_regex(parser->buffer,2222 ret = ftrace_process_regex(parser->buffer,
2223 parser->idx, enable);2223 parser->idx, enable);
2224 if (ret)2224 if (ret)
2225 goto out;2225 goto out_unlock;
2226 2226
2227 trace_parser_clear(parser);2227 trace_parser_clear(parser);
2228 }2228 }
2229 2229
2230 ret = read;2230 ret = read;
2231 2231out_unlock:
2232 mutex_unlock(&ftrace_regex_lock);2232 mutex_unlock(&ftrace_regex_lock);
2233out:2233
2234 return ret;2234 return ret;
2235}2235}
2236 2236
kernel/trace/ring_buffer.c+2−0
@@ -1193,6 +1193,7 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned nr_pages) · 1192 unmodified lines
1193 atomic_inc(&cpu_buffer->record_disabled);1193 atomic_inc(&cpu_buffer->record_disabled);
1194 synchronize_sched();1194 synchronize_sched();
1195 1195
1196 spin_lock_irq(&cpu_buffer->reader_lock);
1196 rb_head_page_deactivate(cpu_buffer);1197 rb_head_page_deactivate(cpu_buffer);
1197 1198
1198 for (i = 0; i < nr_pages; i++) {1199 for (i = 0; i < nr_pages; i++) {
@@ -1207,6 +1208,7 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned nr_pages) · 8 unmodified lines
1207 return;1208 return;
1208 1209
1209 rb_reset_cpu(cpu_buffer);1210 rb_reset_cpu(cpu_buffer);
1211 spin_unlock_irq(&cpu_buffer->reader_lock);
1210 1212
1211 rb_check_pages(cpu_buffer);1213 rb_check_pages(cpu_buffer);
1212 1214