Due to an initialization issue with current->predcache, it was possible for the
predicate on a probe to never be evaluated because the dtrace_probe() code was
incorrectly assuming that there was a valid predicate cache result.
Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
void dtrace_task_init(struct task_struct *tsk)
{
+ tsk->predcache = 0;
+ tsk->dtrace_vtime = ktime_set(0, 0);
+ tsk->dtrace_start = ktime_set(0, 0);
+ tsk->dtrace_stop = 0;
+ tsk->dtrace_sig = 0;
+
tsk->dtrace_helpers = NULL;
tsk->dtrace_probes = 0;
+ tsk->dtrace_tp_count = 0;
}
void dtrace_task_cleanup(struct task_struct *tsk)