diff --git a/sys/dev/drm/include/linux/dma-fence.h b/sys/dev/drm/include/linux/dma-fence.h index 81c78144..ff8c9b35 100644 --- a/sys/dev/drm/include/linux/dma-fence.h +++ b/sys/dev/drm/include/linux/dma-fence.h @@ -97,8 +97,10 @@ dma_fence_get(struct dma_fence *fence) static inline struct dma_fence * dma_fence_get_rcu(struct dma_fence *fence) { - if (fence) - kref_get(&fence->refcount); + if (fence) { + if (!kref_get_unless_zero(&fence->refcount)) + return NULL; + } return fence; }