OSDN Git Service

drm/amdkfd: Remove vla
authorLaura Abbott <labbott@redhat.com>
Fri, 13 Apr 2018 21:24:12 +0000 (14:24 -0700)
committerOded Gabbay <oded.gabbay@gmail.com>
Fri, 13 Apr 2018 21:24:12 +0000 (14:24 -0700)
There's an ongoing effort to remove VLAs[1] from the kernel to eventually
turn on -Wvla. Switch to a constant value that covers all hardware.

[1] https://lkml.org/lkml/2018/3/7/621

Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
drivers/gpu/drm/amd/amdkfd/kfd_priv.h

index 035c351..db6d933 100644 (file)
@@ -139,10 +139,12 @@ static void interrupt_wq(struct work_struct *work)
 {
        struct kfd_dev *dev = container_of(work, struct kfd_dev,
                                                interrupt_work);
+       uint32_t ih_ring_entry[KFD_MAX_RING_ENTRY_SIZE];
 
-       uint32_t ih_ring_entry[DIV_ROUND_UP(
-                               dev->device_info->ih_ring_entry_size,
-                               sizeof(uint32_t))];
+       if (dev->device_info->ih_ring_entry_size > sizeof(ih_ring_entry)) {
+               dev_err_once(kfd_chardev(), "Ring entry too small\n");
+               return;
+       }
 
        while (dequeue_ih_ring_entry(dev, ih_ring_entry))
                dev->device_info->event_interrupt_class->interrupt_wq(dev,
index 10d5b54..5e3990b 100644 (file)
@@ -39,6 +39,8 @@
 
 #include "amd_shared.h"
 
+#define KFD_MAX_RING_ENTRY_SIZE        8
+
 #define KFD_SYSFS_FILE_MODE 0444
 
 /* GPU ID hash width in bits */