From 67f669487e2a8615f3aecce8d154420ab67f0b9b Mon Sep 17 00:00:00 2001 From: Ciro Santilli Date: Sun, 14 May 2017 09:34:27 +0100 Subject: [PATCH] Workqueue attempt, but fails to insmod, already loaded?? --- README.md | 1 + kernel_module/Makefile | 2 +- kernel_module/workqueue_cheat.c | 36 +++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 kernel_module/workqueue_cheat.c diff --git a/README.md b/README.md index 04c6438..8032493 100644 --- a/README.md +++ b/README.md @@ -38,3 +38,4 @@ See also: worker + rmmod workqueue + +Creates a separate thread. So init_module can return, but some work will still get done. +*/ + +#include +#include +#include + +MODULE_LICENSE("GPL"); + +static struct workqueue_struct *queue; + +static void worker_func(struct work_struct *work) +{ + printk(KERN_INFO "worker\n"); +} + +int init_module(void) +{ + DECLARE_WORK(work, worker_func); + queue = create_singlethread_workqueue("myworkqueue"); + queue_work(queue, &work); + return 0; +} + +void cleanup_module(void) +{ + destroy_workqueue(queue); +}