Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdkfd: Fix wrong usage of INIT_WORK()

In kfd_procfs_show(), the sdma_activity_work_handler is a local variable
and the sdma_activity_work_handler.sdma_activity_work should initialize
with INIT_WORK_ONSTACK() instead of INIT_WORK().

Fixes: 32cb59f31362 ("drm/amdkfd: Track SDMA utilization per process")
Signed-off-by: Yuan Can <yuancan@huawei.com>
Signed-off-by: Felix Kuehling <felix.kuehling@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Yuan Can and committed by
Alex Deucher
21cae8de 1b4ca854

+3 -2
+3 -2
drivers/gpu/drm/amd/amdkfd/kfd_process.c
··· 341 341 attr_sdma); 342 342 struct kfd_sdma_activity_handler_workarea sdma_activity_work_handler; 343 343 344 - INIT_WORK(&sdma_activity_work_handler.sdma_activity_work, 345 - kfd_sdma_activity_worker); 344 + INIT_WORK_ONSTACK(&sdma_activity_work_handler.sdma_activity_work, 345 + kfd_sdma_activity_worker); 346 346 347 347 sdma_activity_work_handler.pdd = pdd; 348 348 sdma_activity_work_handler.sdma_activity_counter = 0; ··· 350 350 schedule_work(&sdma_activity_work_handler.sdma_activity_work); 351 351 352 352 flush_work(&sdma_activity_work_handler.sdma_activity_work); 353 + destroy_work_on_stack(&sdma_activity_work_handler.sdma_activity_work); 353 354 354 355 return snprintf(buffer, PAGE_SIZE, "%llu\n", 355 356 (sdma_activity_work_handler.sdma_activity_counter)/