@@ -479,6 +479,12 @@ static int intel_pt_bad_packet(struct intel_pt_decoder *decoder)
479479 return - EBADMSG ;
480480}
481481
482+ static inline void intel_pt_update_sample_time (struct intel_pt_decoder * decoder )
483+ {
484+ decoder -> sample_timestamp = decoder -> timestamp ;
485+ decoder -> sample_insn_cnt = decoder -> timestamp_insn_cnt ;
486+ }
487+
482488static int intel_pt_get_data (struct intel_pt_decoder * decoder )
483489{
484490 struct intel_pt_buffer buffer = { .buf = 0 , };
@@ -1319,8 +1325,7 @@ static int intel_pt_walk_tnt(struct intel_pt_decoder *decoder)
13191325 }
13201326 decoder -> ip += intel_pt_insn .length ;
13211327 if (!decoder -> tnt .count ) {
1322- decoder -> sample_timestamp = decoder -> timestamp ;
1323- decoder -> sample_insn_cnt = decoder -> timestamp_insn_cnt ;
1328+ intel_pt_update_sample_time (decoder );
13241329 return - EAGAIN ;
13251330 }
13261331 decoder -> tnt .payload <<= 1 ;
@@ -2413,19 +2418,16 @@ const struct intel_pt_state *intel_pt_decode(struct intel_pt_decoder *decoder)
24132418 if (err ) {
24142419 decoder -> state .err = intel_pt_ext_err (err );
24152420 decoder -> state .from_ip = decoder -> ip ;
2416- decoder -> sample_timestamp = decoder -> timestamp ;
2417- decoder -> sample_insn_cnt = decoder -> timestamp_insn_cnt ;
2421+ intel_pt_update_sample_time (decoder );
24182422 } else {
24192423 decoder -> state .err = 0 ;
24202424 if (decoder -> cbr != decoder -> cbr_seen && decoder -> state .type ) {
24212425 decoder -> cbr_seen = decoder -> cbr ;
24222426 decoder -> state .type |= INTEL_PT_CBR_CHG ;
24232427 decoder -> state .cbr_payload = decoder -> cbr_payload ;
24242428 }
2425- if (intel_pt_sample_time (decoder -> pkt_state )) {
2426- decoder -> sample_timestamp = decoder -> timestamp ;
2427- decoder -> sample_insn_cnt = decoder -> timestamp_insn_cnt ;
2428- }
2429+ if (intel_pt_sample_time (decoder -> pkt_state ))
2430+ intel_pt_update_sample_time (decoder );
24292431 }
24302432
24312433 decoder -> state .timestamp = decoder -> sample_timestamp ;
0 commit comments