GPtrArray *quarktable);
/* Resource function prototypes */
-static LttvBdevState *get_hashed_bdevstate(LttvTraceState *ts, guint16 devcode);
+static LttvBdevState *get_hashed_bdevstate(LttvTraceState *ts, guint32 devcode);
static LttvBdevState *bdevstate_new(void);
static void bdevstate_free(LttvBdevState *);
static void bdevstate_free_cb(gpointer key, gpointer value, gpointer user_data);
/* bdevstate stuff */
-static LttvBdevState *get_hashed_bdevstate(LttvTraceState *ts, guint16 devcode)
+static LttvBdevState *get_hashed_bdevstate(LttvTraceState *ts, guint32 devcode)
{
gint devcode_gint = devcode;
gpointer bdev = g_hash_table_lookup(ts->bdev_states, &devcode_gint);
lttv_trace_get_hook_field(th, 1));
guint oper = ltt_event_get_long_unsigned(e,
lttv_trace_get_hook_field(th, 2));
- guint16 devcode = MKDEV(major,minor);
+ guint32 devcode = MKDEV(major,minor);
/* have we seen this block device before? */
gpointer bdev = get_hashed_bdevstate(ts, devcode);
lttv_trace_get_hook_field(th, 1));
//guint oper = ltt_event_get_long_unsigned(e,
// lttv_trace_get_hook_field(th, 2));
- guint16 devcode = MKDEV(major,minor);
+ guint32 devcode = MKDEV(major,minor);
/* have we seen this block device before? */
gpointer bdev = get_hashed_bdevstate(ts, devcode);
(LttvTraceState*)s->parent.t_context,
woken_cpu, woken_pid,
&s->parent.timestamp);
- process->state->s = LTTV_STATE_WAIT_CPU;
- process->state->change = s->parent.timestamp;
+
+ if (process->state->s == LTTV_STATE_WAIT || process->state->s == LTTV_STATE_WAIT_FORK)
+ {
+ process->state->s = LTTV_STATE_WAIT_CPU;
+ process->state->change = s->parent.timestamp;
+ }
g_debug("Wakeup: process %d on CPU %u\n", woken_pid, woken_cpu);