diff options
Diffstat (limited to 'kernel/bpf/helpers.c')
| -rw-r--r-- | kernel/bpf/helpers.c | 11 | 
1 files changed, 5 insertions, 6 deletions
diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c index 9aabf84afd4b..1ffd469c217f 100644 --- a/kernel/bpf/helpers.c +++ b/kernel/bpf/helpers.c @@ -979,15 +979,13 @@ out:  	return err;  } -#define MAX_SNPRINTF_VARARGS		12 -  BPF_CALL_5(bpf_snprintf, char *, str, u32, str_size, char *, fmt,  	   const void *, data, u32, data_len)  {  	int err, num_args;  	u32 *bin_args; -	if (data_len % 8 || data_len > MAX_SNPRINTF_VARARGS * 8 || +	if (data_len % 8 || data_len > MAX_BPRINTF_VARARGS * 8 ||  	    (data_len && !data))  		return -EINVAL;  	num_args = data_len / 8; @@ -1058,7 +1056,7 @@ static enum hrtimer_restart bpf_timer_cb(struct hrtimer *hrtimer)  	struct bpf_hrtimer *t = container_of(hrtimer, struct bpf_hrtimer, timer);  	struct bpf_map *map = t->map;  	void *value = t->value; -	void *callback_fn; +	bpf_callback_t callback_fn;  	void *key;  	u32 idx; @@ -1083,8 +1081,7 @@ static enum hrtimer_restart bpf_timer_cb(struct hrtimer *hrtimer)  		key = value - round_up(map->key_size, 8);  	} -	BPF_CAST_CALL(callback_fn)((u64)(long)map, (u64)(long)key, -				   (u64)(long)value, 0, 0); +	callback_fn((u64)(long)map, (u64)(long)key, (u64)(long)value, 0, 0);  	/* The verifier checked that return value is zero. */  	this_cpu_write(hrtimer_running, NULL); @@ -1437,6 +1434,8 @@ bpf_base_func_proto(enum bpf_func_id func_id)  		return &bpf_snprintf_proto;  	case BPF_FUNC_task_pt_regs:  		return &bpf_task_pt_regs_proto; +	case BPF_FUNC_trace_vprintk: +		return bpf_get_trace_vprintk_proto();  	default:  		return NULL;  	}  |