}
static LIST_HEAD(proc_probes_list);
+static DEFINE_SPINLOCK(proc_lock);
struct sspt_proc *sspt_proc_create(struct task_struct *task, void *priv)
{
struct sspt_file *file, *n;
/* delete from list */
+ spin_lock(&proc_lock);
list_del(&proc->list);
+ spin_unlock(&proc_lock);
list_for_each_entry_safe(file, n, &proc->file_list, list) {
list_del(&file->list);
{
struct sspt_proc *proc, *tmp;
+ spin_lock(&proc_lock);
list_for_each_entry_safe(proc, tmp, &proc_probes_list, list) {
func(proc, data);
}
+ spin_unlock(&proc_lock);
}
struct sspt_proc *sspt_proc_get_by_task_or_new(struct task_struct *task,