diff options
Diffstat (limited to 'kernel/trace/trace_uprobe.c')
| -rw-r--r-- | kernel/trace/trace_uprobe.c | 13 | 
1 files changed, 5 insertions, 8 deletions
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c index 8d64b6553aed..8b92e34ff0c8 100644 --- a/kernel/trace/trace_uprobe.c +++ b/kernel/trace/trace_uprobe.c @@ -220,6 +220,7 @@ process_fetch_insn(struct fetch_insn *code, void *rec, void *dest,  {  	struct pt_regs *regs = rec;  	unsigned long val; +	int ret;  	/* 1st stage: get value from context */  	switch (code->op) { @@ -235,20 +236,16 @@ process_fetch_insn(struct fetch_insn *code, void *rec, void *dest,  	case FETCH_OP_RETVAL:  		val = regs_return_value(regs);  		break; -	case FETCH_OP_IMM: -		val = code->immediate; -		break;  	case FETCH_OP_COMM:  		val = FETCH_TOKEN_COMM;  		break; -	case FETCH_OP_DATA: -		val = (unsigned long)code->data; -		break;  	case FETCH_OP_FOFFS:  		val = translate_user_vaddr(code->immediate);  		break;  	default: -		return -EILSEQ; +		ret = process_common_fetch_insn(code, &val); +		if (ret < 0) +			return ret;  	}  	code++; @@ -1042,7 +1039,7 @@ print_uprobe_event(struct trace_iterator *iter, int flags, struct trace_event *e  		data = DATAOF_TRACE_ENTRY(entry, false);  	} -	if (print_probe_args(s, tu->tp.args, tu->tp.nr_args, data, entry) < 0) +	if (trace_probe_print_args(s, tu->tp.args, tu->tp.nr_args, data, entry) < 0)  		goto out;  	trace_seq_putc(s, '\n');  |