drm/i915: Track rcu_head for our idle worker
While our little rcu worker might be able to be replaced now by the dedicated rcu_work, in the meantime we should mark up the rcu_head for correct debugobjects tracking. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181108092101.27598-2-chris@chris-wilson.co.uk
This commit is contained in:
parent
8811d616df
commit
a1db9c54eb
@ -3557,6 +3557,8 @@ static void __sleep_rcu(struct rcu_head *rcu)
|
|||||||
struct sleep_rcu_work *s = container_of(rcu, typeof(*s), rcu);
|
struct sleep_rcu_work *s = container_of(rcu, typeof(*s), rcu);
|
||||||
struct drm_i915_private *i915 = s->i915;
|
struct drm_i915_private *i915 = s->i915;
|
||||||
|
|
||||||
|
destroy_rcu_head(&s->rcu);
|
||||||
|
|
||||||
if (same_epoch(i915, s->epoch)) {
|
if (same_epoch(i915, s->epoch)) {
|
||||||
INIT_WORK(&s->work, __sleep_work);
|
INIT_WORK(&s->work, __sleep_work);
|
||||||
queue_work(i915->wq, &s->work);
|
queue_work(i915->wq, &s->work);
|
||||||
@ -3673,6 +3675,7 @@ out_rearm:
|
|||||||
if (same_epoch(dev_priv, epoch)) {
|
if (same_epoch(dev_priv, epoch)) {
|
||||||
struct sleep_rcu_work *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
struct sleep_rcu_work *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
||||||
if (s) {
|
if (s) {
|
||||||
|
init_rcu_head(&s->rcu);
|
||||||
s->i915 = dev_priv;
|
s->i915 = dev_priv;
|
||||||
s->epoch = epoch;
|
s->epoch = epoch;
|
||||||
call_rcu(&s->rcu, __sleep_rcu);
|
call_rcu(&s->rcu, __sleep_rcu);
|
||||||
|
Loading…
Reference in New Issue
Block a user