X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Fstate.c;h=823bbe78aeb96a83359f8618764f0c7cce90b4a7;hb=8743690d339401db862834d50f9b6bbd1268271f;hp=4ef1e6419cabad04caf6b9fc334e911a728a1605;hpb=5e563da0170db1c625eed273e553320ce18edbe5;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/state.c b/ltt/branches/poly/lttv/lttv/state.c index 4ef1e641..823bbe78 100644 --- a/ltt/branches/poly/lttv/lttv/state.c +++ b/ltt/branches/poly/lttv/lttv/state.c @@ -2059,6 +2059,7 @@ static gboolean irq_entry(void *hook_data, void *call_data) cpu_push_mode(s->cpu_state, LTTV_CPU_IRQ); /* update irq status */ + s->cpu_state->last_irq = irq; irq_push_mode(&ts->irq_states[irq], LTTV_IRQ_BUSY); return FALSE; @@ -2077,12 +2078,16 @@ static gboolean soft_irq_exit(void *hook_data, void *call_data) static gboolean irq_exit(void *hook_data, void *call_data) { LttvTracefileState *s = (LttvTracefileState *)call_data; + LttvTraceState *ts = (LttvTraceState *)s->parent.t_context; pop_state(s, LTTV_STATE_IRQ); /* update cpu status */ cpu_pop_mode(s->cpu_state); + /* update irq status */ + irq_pop_mode(&ts->irq_states[s->cpu_state->last_irq]); + return FALSE; }