summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2019-07-29 10:46:06 +0000
committerjsg <jsg@openbsd.org>2019-07-29 10:46:06 +0000
commitf3261f8f7cefd1232d98b761dfbe939bb25047dd (patch)
tree5000ffd072fc83d1978abdf0c5a2ac1e5fda5386
parentMoving variables into struct in openssl(1) dgst (diff)
downloadwireguard-openbsd-f3261f8f7cefd1232d98b761dfbe939bb25047dd.tar.xz
wireguard-openbsd-f3261f8f7cefd1232d98b761dfbe939bb25047dd.zip
dma-buf: Discard old fence_excl on retrying get_fences_rcu for realloc
From Chris Wilson c947cf3e95839e9f449d8194fd15979e5ebc5f16 in linux 4.19.y/4.19.62 f5b07b04e5f090a85d1e96938520f2b2b58e4a8e in mainline linux
-rw-r--r--sys/dev/pci/drm/linux_reservation.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/linux_reservation.c b/sys/dev/pci/drm/linux_reservation.c
index 600ea218630..9e6c2ad1ed5 100644
--- a/sys/dev/pci/drm/linux_reservation.c
+++ b/sys/dev/pci/drm/linux_reservation.c
@@ -420,6 +420,10 @@ int reservation_object_get_fences_rcu(struct reservation_object *obj,
kfree(shared);
if (!nshared) {
rcu_read_unlock();
+
+ dma_fence_put(fence_excl);
+ fence_excl = NULL;
+
nshared = kmalloc(sz, GFP_KERNEL);
if (nshared != NULL && shared != NULL)
memcpy(nshared, shared, sz);