REPORT_CALLBACKS/utrace_resume/etc use list_for_each_entry_safe(). Why we can't just use list_for_each_entry() ?
Perhaps I misread utrace.c, but I can't see how engine can be unlinked under us. Afaics, nobody except us (finish_report->utrace_reset) can unlink the detached engines, even if we race with UTRACE_DETACH. And we can't race with utrace_release_task(). No? OTOH. If I am wrong, and UTRACE_DETACH can unlink _any_ engine from ->attached list while we are doing list_for_each_entry_safe(), then we can crash, and I can't see how _safe can help. Confused. Oleg.