|
Message-ID: <7aba566e-ed84-91ae-78f1-01659ef7907d@redhat.com> Date: Tue, 10 Apr 2018 11:43:57 -0700 From: Laura Abbott <labbott@...hat.com> To: Christian König <christian.koenig@....com>, Oded Gabbay <oded.gabbay@...il.com>, Alex Deucher <alexander.deucher@....com>, "David (ChunMing) Zhou" <David1.Zhou@....com> Cc: David Airlie <airlied@...ux.ie>, dri-devel@...ts.freedesktop.org, amd-gfx@...ts.freedesktop.org, linux-kernel@...r.kernel.org, kernel-hardening@...ts.openwall.com, Kees Cook <keescook@...omium.org> Subject: Re: [PATCH] drm/amdkfd: Remove vla On 04/09/2018 11:38 PM, Christian König wrote: > Am 09.04.2018 um 23:06 schrieb Laura Abbott: >> There's an ongoing effort to remove VLAs[1] from the kernel to eventually >> turn on -Wvla. The single VLA usage in the amdkfd driver is actually >> constant across all current platforms. > > Actually that isn't correct. > > Could be that we haven't upstreamed KFD support for them, but Vega10 have a different interrupt ring entry size and so would cause the error message here. > >> Switch to a constant size array >> instead. > > I would say to just make make the array bigger. > > Regards, > Christian. > What array size would accommodate future chips? >> >> [1] https://lkml.org/lkml/2018/3/7/621 >> >> Signed-off-by: Laura Abbott <labbott@...hat.com> >> --- >> drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c | 8 +++++--- >> 1 file changed, 5 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c >> index 035c351f47c5..c9863858f343 100644 >> --- a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c >> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c >> @@ -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[4]; >> - 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 > (4 * sizeof(uint32_t))) { >> + dev_err(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, >
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.