root/lib/livepatch/test_klp_callbacks_busy.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. busymod_work_func
  2. test_klp_callbacks_busy_init
  3. test_klp_callbacks_busy_exit

   1 // SPDX-License-Identifier: GPL-2.0
   2 // Copyright (C) 2018 Joe Lawrence <joe.lawrence@redhat.com>
   3 
   4 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
   5 
   6 #include <linux/module.h>
   7 #include <linux/kernel.h>
   8 #include <linux/workqueue.h>
   9 #include <linux/delay.h>
  10 
  11 static int sleep_secs;
  12 module_param(sleep_secs, int, 0644);
  13 MODULE_PARM_DESC(sleep_secs, "sleep_secs (default=0)");
  14 
  15 static void busymod_work_func(struct work_struct *work);
  16 static DECLARE_DELAYED_WORK(work, busymod_work_func);
  17 
  18 static void busymod_work_func(struct work_struct *work)
  19 {
  20         pr_info("%s, sleeping %d seconds ...\n", __func__, sleep_secs);
  21         msleep(sleep_secs * 1000);
  22         pr_info("%s exit\n", __func__);
  23 }
  24 
  25 static int test_klp_callbacks_busy_init(void)
  26 {
  27         pr_info("%s\n", __func__);
  28         schedule_delayed_work(&work,
  29                 msecs_to_jiffies(1000 * 0));
  30         return 0;
  31 }
  32 
  33 static void test_klp_callbacks_busy_exit(void)
  34 {
  35         cancel_delayed_work_sync(&work);
  36         pr_info("%s\n", __func__);
  37 }
  38 
  39 module_init(test_klp_callbacks_busy_init);
  40 module_exit(test_klp_callbacks_busy_exit);
  41 MODULE_LICENSE("GPL");
  42 MODULE_AUTHOR("Joe Lawrence <joe.lawrence@redhat.com>");
  43 MODULE_DESCRIPTION("Livepatch test: busy target module");

/* [<][>][^][v][top][bottom][index][help] */