Commit 7d63e635 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'tracing-fixes-for-linus' of...

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:
  tracing: Fix too large stack usage in do_one_initcall()
  tracing: handle broken names in ftrace filter
  ftrace: Unify effect of writing to trace_options and option/*
parents 9f459fad 4a683bf9
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -733,13 +733,14 @@ static void __init do_ctors(void)
int initcall_debug;
core_param(initcall_debug, initcall_debug, bool, 0644);

static char msgbuf[64];
static struct boot_trace_call call;
static struct boot_trace_ret ret;

int do_one_initcall(initcall_t fn)
{
	int count = preempt_count();
	ktime_t calltime, delta, rettime;
	char msgbuf[64];
	struct boot_trace_call call;
	struct boot_trace_ret ret;

	if (initcall_debug) {
		call.caller = task_pid_nr(current);
+11 −6
Original line number Diff line number Diff line
@@ -2278,7 +2278,11 @@ ftrace_regex_write(struct file *file, const char __user *ubuf,
	read++;
	cnt--;

	if (!(iter->flags & ~FTRACE_ITER_CONT)) {
	/*
	 * If the parser haven't finished with the last write,
	 * continue reading the user input without skipping spaces.
	 */
	if (!(iter->flags & FTRACE_ITER_CONT)) {
		/* skip white space */
		while (cnt && isspace(ch)) {
			ret = get_user(ch, ubuf++);
@@ -2288,8 +2292,9 @@ ftrace_regex_write(struct file *file, const char __user *ubuf,
			cnt--;
		}

		/* only spaces were written */
		if (isspace(ch)) {
			file->f_pos += read;
			*ppos += read;
			ret = read;
			goto out;
		}
@@ -2319,12 +2324,12 @@ ftrace_regex_write(struct file *file, const char __user *ubuf,
		if (ret)
			goto out;
		iter->buffer_idx = 0;
	} else
	} else {
		iter->flags |= FTRACE_ITER_CONT;
		iter->buffer[iter->buffer_idx++] = ch;
	}


	file->f_pos += read;

	*ppos += read;
	ret = read;
 out:
	mutex_unlock(&ftrace_regex_lock);
+2 −10
Original line number Diff line number Diff line
@@ -3896,17 +3896,9 @@ trace_options_core_write(struct file *filp, const char __user *ubuf, size_t cnt,
	if (ret < 0)
		return ret;

	switch (val) {
	case 0:
		trace_flags &= ~(1 << index);
		break;
	case 1:
		trace_flags |= 1 << index;
		break;

	default:
	if (val != 0 && val != 1)
		return -EINVAL;
	}
	set_tracer_flags(1 << index, val);

	*ppos += cnt;