On 2024-11-05 20:35, Yuan Can wrote: > 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@xxxxxxxxxx> Thank you. The patch is Reviewed-by: Felix Kuehling <felix.kuehling@xxxxxxx> I am submitting it to amd-staging-drm-next. Regards, Felix > --- > drivers/gpu/drm/amd/amdkfd/kfd_process.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c > index d4aa843aacfd..2792015f1054 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c > @@ -338,8 +338,8 @@ static ssize_t kfd_procfs_show(struct kobject *kobj, struct attribute *attr, > attr_sdma); > struct kfd_sdma_activity_handler_workarea sdma_activity_work_handler; > > - INIT_WORK(&sdma_activity_work_handler.sdma_activity_work, > - kfd_sdma_activity_worker); > + INIT_WORK_ONSTACK(&sdma_activity_work_handler.sdma_activity_work, > + kfd_sdma_activity_worker); > > sdma_activity_work_handler.pdd = pdd; > sdma_activity_work_handler.sdma_activity_counter = 0; > @@ -347,6 +347,7 @@ static ssize_t kfd_procfs_show(struct kobject *kobj, struct attribute *attr, > schedule_work(&sdma_activity_work_handler.sdma_activity_work); > > flush_work(&sdma_activity_work_handler.sdma_activity_work); > + destroy_work_on_stack(&sdma_activity_work_handler.sdma_activity_work); > > return snprintf(buffer, PAGE_SIZE, "%llu\n", > (sdma_activity_work_handler.sdma_activity_counter)/