blob: dd321686dd49919fa37d3d4097d617e889a09c95 [file] [log] [blame]
#define pr_fmt(fmt) "ACME: " fmt
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/workqueue.h>
void *acme_todo(void *arg);
static DECLARE_WORK(acme_work, acme_todo);
void *acme_todo(void *arg)
{
pr_info("Running scheduled work\n");
pthread_exit(NULL);
}
static int acme_init_driver(void) {
pr_info("Initializing ...\n");
sleep(2);
pr_info("Finished init ... !\n");
init_work(&acme_work);
schedule_work(&acme_work);
return 0;
}
module_init(acme_init_driver);
static void acme_exit(void)
{
cancel_work_sync(&acme_work);
};
module_exit(acme_exit);