diff options
Diffstat (limited to 'tools/perf/util/intel-bts.c')
| -rw-r--r-- | tools/perf/util/intel-bts.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/tools/perf/util/intel-bts.c b/tools/perf/util/intel-bts.c index f545ec1e758a..6c2eb5da4afc 100644 --- a/tools/perf/util/intel-bts.c +++ b/tools/perf/util/intel-bts.c @@ -295,6 +295,7 @@ static int intel_bts_synth_branch_sample(struct intel_bts_queue *btsq,  	sample.cpu = btsq->cpu;  	sample.flags = btsq->sample_flags;  	sample.insn_len = btsq->intel_pt_insn.length; +	memcpy(sample.insn, btsq->intel_pt_insn.buf, INTEL_PT_INSN_BUF_SZ);  	if (bts->synth_opts.inject) {  		event.sample.header.size = bts->branches_event_size; @@ -319,15 +320,12 @@ static int intel_bts_get_next_insn(struct intel_bts_queue *btsq, u64 ip)  	struct machine *machine = btsq->bts->machine;  	struct thread *thread;  	struct addr_location al; -	unsigned char buf[1024]; -	size_t bufsz; +	unsigned char buf[INTEL_PT_INSN_BUF_SZ];  	ssize_t len;  	int x86_64;  	uint8_t cpumode;  	int err = -1; -	bufsz = intel_pt_insn_max_size(); -  	if (machine__kernel_ip(machine, ip))  		cpumode = PERF_RECORD_MISC_KERNEL;  	else @@ -341,7 +339,8 @@ static int intel_bts_get_next_insn(struct intel_bts_queue *btsq, u64 ip)  	if (!al.map || !al.map->dso)  		goto out_put; -	len = dso__data_read_addr(al.map->dso, al.map, machine, ip, buf, bufsz); +	len = dso__data_read_addr(al.map->dso, al.map, machine, ip, buf, +				  INTEL_PT_INSN_BUF_SZ);  	if (len <= 0)  		goto out_put;  |