Call WITNESS_WARN() in callout_drain() to check whether any locks are
being held before sleeping. This has bitten me (in ath(4)) once before and I'd like to see this not bite anyone else. Differential Revision: D1638 Reviewed by: jhb, hselasky MFC after: 1 week
This commit is contained in:
@@ -1096,6 +1096,10 @@ _callout_stop_safe(struct callout *c, int safe)
|
||||
struct lock_class *class;
|
||||
int direct, sq_locked, use_lock;
|
||||
|
||||
if (safe)
|
||||
WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, c->c_lock,
|
||||
"calling %s", __func__);
|
||||
|
||||
/*
|
||||
* Some old subsystems don't hold Giant while running a callout_stop(),
|
||||
* so just discard this check for the moment.
|
||||
|
||||
Reference in New Issue
Block a user