On Wed, Dec 05, 2018 at 11:03:29AM -0700, Mathieu Poirier wrote:
[...]
static ocsd_datapath_resp_t cs_etm_decoder__buffer_exception(struct cs_etm_decoder *decoder,
const ocsd_generic_trace_elem *elem, const uint8_t trace_chan_id)
{
- return cs_etm_decoder__buffer_packet(decoder, trace_chan_id,
CS_ETM_EXCEPTION);
- int ret;
- struct cs_etm_packet *packet;
- ret = cs_etm_decoder__buffer_packet(decoder, trace_chan_id,
CS_ETM_EXCEPTION);
- if (ret != OCSD_RESP_CONT && ret != OCSD_RESP_WAIT)
return ret;
- packet = &decoder->packet_buffer[decoder->tail];
- /*
- Exception number is recorded per CPU and later can be used
- for exception return instruction analysis.
- */
- decoder->exc_num[packet->cpu] = elem->exception_number;
Am I missing something or the information about the exception number that is recorded here isn't used anywhere?
The exception number will be used to set branch flag patch [1].
Right, I realised that when I started reviewing that set. The rule of thumb here is to introduce code in the same patchset it is used so that we avoid adding needless code to the kernel.
Will move this patch into sample flag series.
Thanks, Leo Yan