summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2020-01-01 00:16:45 +0000
committerjsg <jsg@openbsd.org>2020-01-01 00:16:45 +0000
commit54f904eb1e235a9cc4fd026f5c96e05ba7e72ab5 (patch)
tree3cd83ab3a3d4af9d9a61f8ddc26d02d275008f8d
parentdrm/amdgpu: fix uninitialized variable pasid_mapping_needed (diff)
downloadwireguard-openbsd-54f904eb1e235a9cc4fd026f5c96e05ba7e72ab5.tar.xz
wireguard-openbsd-54f904eb1e235a9cc4fd026f5c96e05ba7e72ab5.zip
drm/amdkfd: fix a potential NULL pointer dereference (v2)
From Allen Pais 55248674330101fb3ccf7cec8b729e8e067e5f71 in linux 4.19.y/4.19.92 81de29d842ccb776c0f77aa3e2b11b07fff0c0e2 in mainline linux
-rw-r--r--sys/dev/pci/drm/amd/amdkfd/kfd_interrupt.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/amd/amdkfd/kfd_interrupt.c b/sys/dev/pci/drm/amd/amdkfd/kfd_interrupt.c
index eea837c9bde..c5f6c980941 100644
--- a/sys/dev/pci/drm/amd/amdkfd/kfd_interrupt.c
+++ b/sys/dev/pci/drm/amd/amdkfd/kfd_interrupt.c
@@ -62,6 +62,11 @@ int kfd_interrupt_init(struct kfd_dev *kfd)
}
kfd->ih_wq = alloc_workqueue("KFD IH", WQ_HIGHPRI, 1);
+ if (unlikely(!kfd->ih_wq)) {
+ kfifo_free(&kfd->ih_fifo);
+ dev_err(kfd_chardev(), "Failed to allocate KFD IH workqueue\n");
+ return -ENOMEM;
+ }
mtx_init(&kfd->interrupt_lock, IPL_TTY);
INIT_WORK(&kfd->interrupt_work, interrupt_wq);