⬢ DragonFlyBSD Kernel Audit
DF-4684 / fix.diff
← back to finding ↓ download raw
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;
 }