diff --git a/drivers/platform/tegra/nvadsp/adspff.c b/drivers/platform/tegra/nvadsp/adspff.c index 11c10959..cbc13fcd 100644 --- a/drivers/platform/tegra/nvadsp/adspff.c +++ b/drivers/platform/tegra/nvadsp/adspff.c @@ -663,6 +663,16 @@ int adspff_init(struct platform_device *pdev) return -1; } + adspff_kthread = kthread_create(adspff_kthread_fn, + NULL, "adspp_kthread"); + if ((adspff_kthread == ERR_PTR(-ENOMEM)) || + (adspff_kthread == ERR_PTR(-EINTR))) { + pr_err("adspff kthread_create failed, error = %s\n", + (adspff_kthread == ERR_PTR(-ENOMEM)) ? + "-ENOMEM" : "-EINTR"); + return -1; + } + adspff = ADSPFF_SHARED_STATE(app_info->mem.shared); ret = nvadsp_mbox_open(&rx_mbox, &adspff->mbox_id, @@ -684,10 +694,7 @@ int adspff_init(struct platform_device *pdev) INIT_LIST_HEAD(&adspff_kthread_msgq_head); INIT_LIST_HEAD(&file_list); - // kthread inIt init_waitqueue_head(&wait_queue); - adspff_kthread = kthread_create(adspff_kthread_fn, - NULL, "adspp_kthread"); #if KERNEL_VERSION(5, 9, 0) > LINUX_VERSION_CODE sched_setscheduler(adspff_kthread, SCHED_FIFO, ¶m);