tee: optee: Remove redundant custom workqueue
authorSumit Garg <sumit.garg@linaro.org>
Thu, 2 Nov 2023 07:30:56 +0000 (13:00 +0530)
committerJens Wiklander <jens.wiklander@linaro.org>
Tue, 14 Nov 2023 10:02:21 +0000 (11:02 +0100)
Global system workqueue is sufficient to suffice OP-TEE bus scanning work
needs. So drop redundant usage of the custom workqueue.

Tested-by: Jan Kiszka <jan.kiszka@siemens.com>
Tested-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
drivers/tee/optee/core.c
drivers/tee/optee/optee_private.h

index 2a258bd3b6b5cc8f2123cfa203313c060c8a3e7f..1eaa191b6ff61d3ab2f15e628106596c7aa9a499 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/string.h>
 #include <linux/tee_drv.h>
 #include <linux/types.h>
-#include <linux/workqueue.h>
 #include "optee_private.h"
 
 int optee_pool_op_alloc_helper(struct tee_shm_pool *pool, struct tee_shm *shm,
@@ -110,12 +109,7 @@ int optee_open(struct tee_context *ctx, bool cap_memref_null)
 
                if (!optee->scan_bus_done) {
                        INIT_WORK(&optee->scan_bus_work, optee_bus_scan);
-                       optee->scan_bus_wq = create_workqueue("optee_bus_scan");
-                       if (!optee->scan_bus_wq) {
-                               kfree(ctxdata);
-                               return -ECHILD;
-                       }
-                       queue_work(optee->scan_bus_wq, &optee->scan_bus_work);
+                       schedule_work(&optee->scan_bus_work);
                        optee->scan_bus_done = true;
                }
        }
@@ -158,10 +152,7 @@ void optee_release_supp(struct tee_context *ctx)
        struct optee *optee = tee_get_drvdata(ctx->teedev);
 
        optee_release_helper(ctx, optee_close_session_helper);
-       if (optee->scan_bus_wq) {
-               destroy_workqueue(optee->scan_bus_wq);
-               optee->scan_bus_wq = NULL;
-       }
+
        optee_supp_release(&optee->supp);
 }
 
index 6bb5cae0968865910b00298474f1cd4330fe375b..94c0ee38189449ebd3230afad8c57670a9552b01 100644 (file)
@@ -178,7 +178,6 @@ struct optee_ops {
  * @pool:              shared memory pool
  * @rpc_param_count:   If > 0 number of RPC parameters to make room for
  * @scan_bus_done      flag if device registation was already done.
- * @scan_bus_wq                workqueue to scan optee bus and register optee drivers
  * @scan_bus_work      workq to scan optee bus and register optee drivers
  */
 struct optee {
@@ -197,7 +196,6 @@ struct optee {
        struct tee_shm_pool *pool;
        unsigned int rpc_param_count;
        bool   scan_bus_done;
-       struct workqueue_struct *scan_bus_wq;
        struct work_struct scan_bus_work;
 };