if (minfo->name == LTT_EVENT_IRQ_ENTRY) {
irq = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 0));
} else if (minfo->name == LTT_EVENT_IRQ_EXIT) {
- irq = ts->cpu_states[cpu].last_irq;
- if (irq == -1)
- return 0;
+ irq = g_array_index(ts->cpu_states[cpu].irq_stack, gint, ts->cpu_states[cpu].irq_stack->len-1);
} else
return 0;
softirq = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 0));
} else if (minfo->name == LTT_EVENT_SOFT_IRQ_EXIT) {
softirq = ts->cpu_states[cpu].last_soft_irq;
- if (softirq == -1)
- return 0;
} else
return 0;
|| minfo->name == LTT_EVENT_PAGE_FAULT_EXIT
|| minfo->name == LTT_EVENT_PAGE_FAULT_NOSEM_EXIT) {
trap = ts->cpu_states[cpu].last_trap;
- /* Handle case where a trace starts with a trap exit event */
- if (trap == -1)
- return 0;
} else
return 0;