int iRet = 0, found = 0;
struct task_struct *task = NULL;
struct sspt_proc *proc;
+ int tmp_oops_in_progress;
if (!is_us_instrumentation()) {
return 0;
EPRINTF ("uninstall_kernel_probe(do_munmap) result=%d!", iRet);
+ tmp_oops_in_progress = oops_in_progress;
+ oops_in_progress = 1;
+ rcu_read_lock();
for_each_process(task) {
proc = sspt_proc_get_by_task(task);
if (proc) {
dbi_unregister_all_uprobes(task);
}
}
+ rcu_read_unlock();
+ oops_in_progress = tmp_oops_in_progress;
uninit_filter();
unregister_filter(app_filter);
int ret, i;
struct task_struct *task = NULL, *ts;
struct sspt_proc *proc;
+ int tmp_oops_in_progress;
if (!is_us_instrumentation()) {
return 0;
return ret;
}
+ tmp_oops_in_progress = oops_in_progress;
+ oops_in_progress = 1;
+ rcu_read_lock();
for_each_process(task) {
ts = check_task(task);
sspt_proc_install(proc);
}
}
+ rcu_read_unlock();
+ oops_in_progress = tmp_oops_in_progress;
return 0;
}