/* * example_tasklet.c */ #include #include #include #include static void tasklet_fn(unsigned long data) { pr_info("Example tasklet starts\n"); mdelay(5000); pr_info("Example tasklet ends\n"); } DECLARE_TASKLET(mytask, tasklet_fn, 0L); static int example_tasklet_init(void) { pr_info("tasklet example init\n"); tasklet_schedule(&mytask); mdelay(200); pr_info("Example tasklet init continues...\n"); return 0; } static void example_tasklet_exit(void) { pr_info("tasklet example exit\n"); tasklet_kill(&mytask); } module_init(example_tasklet_init); module_exit(example_tasklet_exit); MODULE_DESCRIPTION("Tasklet example"); MODULE_LICENSE("GPL");