diff options
| -rw-r--r-- | drivers/gpu/drm/i915/i915_sw_fence.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c index e8ca67a129d2..ac236b88c99c 100644 --- a/drivers/gpu/drm/i915/i915_sw_fence.c +++ b/drivers/gpu/drm/i915/i915_sw_fence.c | |||
| @@ -367,6 +367,7 @@ struct i915_sw_dma_fence_cb { | |||
| 367 | struct dma_fence *dma; | 367 | struct dma_fence *dma; |
| 368 | struct timer_list timer; | 368 | struct timer_list timer; |
| 369 | struct irq_work work; | 369 | struct irq_work work; |
| 370 | struct rcu_head rcu; | ||
| 370 | }; | 371 | }; |
| 371 | 372 | ||
| 372 | static void timer_i915_sw_fence_wake(struct timer_list *t) | 373 | static void timer_i915_sw_fence_wake(struct timer_list *t) |
| @@ -406,7 +407,7 @@ static void irq_i915_sw_fence_work(struct irq_work *wrk) | |||
| 406 | del_timer_sync(&cb->timer); | 407 | del_timer_sync(&cb->timer); |
| 407 | dma_fence_put(cb->dma); | 408 | dma_fence_put(cb->dma); |
| 408 | 409 | ||
| 409 | kfree(cb); | 410 | kfree_rcu(cb, rcu); |
| 410 | } | 411 | } |
| 411 | 412 | ||
| 412 | int i915_sw_fence_await_dma_fence(struct i915_sw_fence *fence, | 413 | int i915_sw_fence_await_dma_fence(struct i915_sw_fence *fence, |
