On 22/10/2020 15:58, Leo Yan wrote: > In function arm_spe_get_events(), the event packet's 'index' is assigned > as payload length, but the flow is not directive: it firstly gets the > packet length from the return value of arm_spe_get_payload(), the value > includes header length (1) and payload length: > > int ret = arm_spe_get_payload(buf, len, packet); > > and then reduces header length from packet length, so finally get the > payload length: > > packet->index = ret - 1; > > To simplify the code, this patch directly assigns payload length to > event packet's index; and at the end it calls arm_spe_get_payload() to > return the payload value. > > Signed-off-by: Leo Yan <leo....@linaro.org>
Reviewed-by: Andre Przywara <andre.przyw...@arm.com> Cheers, Andre > --- > tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > b/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > index 4294c133a465..f3bb8bf102aa 100644 > --- a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > +++ b/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > @@ -136,8 +136,6 @@ static int arm_spe_get_timestamp(const unsigned char > *buf, size_t len, > static int arm_spe_get_events(const unsigned char *buf, size_t len, > struct arm_spe_pkt *packet) > { > - int ret = arm_spe_get_payload(buf, len, packet); > - > packet->type = ARM_SPE_EVENTS; > > /* we use index to identify Events with a less number of > @@ -145,9 +143,9 @@ static int arm_spe_get_events(const unsigned char *buf, > size_t len, > * LLC-REFILL, and REMOTE-ACCESS events are identified if > * index > 1. > */ > - packet->index = ret - 1; > + packet->index = arm_spe_payload_len(buf[0]); > > - return ret; > + return arm_spe_get_payload(buf, len, packet); > } > > static int arm_spe_get_data_source(const unsigned char *buf, size_t len, >