Fix bug in SPLAT taskq:front
While running SPLAT on a kernel with CONFIG_DEBUG_ATOMIC_SLEEP enabled the taskq:front was flagged as a test which might sleep which in an unsafe context. Specifically, the splat_vprint() function which internally takes a mutex was being called under a spin lock. Moving the log function outside the spin lock cleanly solves this issue. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
parent
e3020723dc
commit
81857a34d1
|
@ -814,10 +814,11 @@ splat_taskq_test6_func(void *arg)
|
||||||
spin_lock(&tq_arg->lock);
|
spin_lock(&tq_arg->lock);
|
||||||
tq_arg->order[tq_arg->flag] = tq_id->id;
|
tq_arg->order[tq_arg->flag] = tq_id->id;
|
||||||
tq_arg->flag++;
|
tq_arg->flag++;
|
||||||
|
spin_unlock(&tq_arg->lock);
|
||||||
|
|
||||||
splat_vprint(tq_arg->file, tq_arg->name,
|
splat_vprint(tq_arg->file, tq_arg->name,
|
||||||
"Taskqid %d complete for taskq '%s'\n",
|
"Taskqid %d complete for taskq '%s'\n",
|
||||||
tq_id->id, tq_arg->name);
|
tq_id->id, tq_arg->name);
|
||||||
spin_unlock(&tq_arg->lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
Loading…
Reference in New Issue