Message ID | 20241105072642.898710-7-lulu@redhat.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | vhost: Add support of kthread API | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
Hi Cindy, kernel test robot noticed the following build warnings: https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Cindy-Lu/vhost-Add-a-new-parameter-to-allow-user-select-kthread/20241105-153254 base: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next patch link: https://lore.kernel.org/r/20241105072642.898710-7-lulu%40redhat.com patch subject: [PATCH v3 6/9] vhost: Add kthread support in function vhost_worker_destroy() config: x86_64-randconfig-161-20241106 (https://download.01.org/0day-ci/archive/20241107/202411071945.ExiEHgoX-lkp@intel.com/config) compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org> | Closes: https://lore.kernel.org/r/202411071945.ExiEHgoX-lkp@intel.com/ New smatch warnings: drivers/vhost/vhost.c:721 vhost_worker_destroy() error: we previously assumed 'worker' could be null (see line 721) Old smatch warnings: drivers/vhost/vhost.c:241 vhost_worker_queue() error: we previously assumed 'worker' could be null (see line 241) vim +/worker +721 drivers/vhost/vhost.c 1cdaafa1b8b4ef Mike Christie 2023-06-26 718 static void vhost_worker_destroy(struct vhost_dev *dev, 1cdaafa1b8b4ef Mike Christie 2023-06-26 719 struct vhost_worker *worker) 1a5f8090c6de99 Mike Christie 2023-03-10 720 { e4dec2edddbd54 Cindy Lu 2024-11-05 @721 if (!worker && !worker->fn) Same thing. && vs ||. 1a5f8090c6de99 Mike Christie 2023-03-10 722 return; 1a5f8090c6de99 Mike Christie 2023-03-10 723 1cdaafa1b8b4ef Mike Christie 2023-06-26 724 WARN_ON(!llist_empty(&worker->work_list)); 1cdaafa1b8b4ef Mike Christie 2023-06-26 725 xa_erase(&dev->worker_xa, worker->id); e4dec2edddbd54 Cindy Lu 2024-11-05 726 worker->fn->stop(dev->inherit_owner ? (void *)worker->vtsk : e4dec2edddbd54 Cindy Lu 2024-11-05 727 (void *)worker->task); e4dec2edddbd54 Cindy Lu 2024-11-05 728 kfree(worker->fn); 1cdaafa1b8b4ef Mike Christie 2023-06-26 729 kfree(worker); 1cdaafa1b8b4ef Mike Christie 2023-06-26 730 }
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 8b7ddfb33c61..c17dc01febcc 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -718,12 +718,14 @@ static void vhost_detach_mm(struct vhost_dev *dev) static void vhost_worker_destroy(struct vhost_dev *dev, struct vhost_worker *worker) { - if (!worker) + if (!worker && !worker->fn) return; WARN_ON(!llist_empty(&worker->work_list)); xa_erase(&dev->worker_xa, worker->id); - vhost_task_stop(worker->vtsk); + worker->fn->stop(dev->inherit_owner ? (void *)worker->vtsk : + (void *)worker->task); + kfree(worker->fn); kfree(worker); }
The function vhost_worker_destroy() will use struct vhost_task_fn and selects the different mode based on the value of inherit_owner. Signed-off-by: Cindy Lu <lulu@redhat.com> --- drivers/vhost/vhost.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)