diff options
author | Manuel Bentele | 2020-08-28 14:50:51 +0200 |
---|---|---|
committer | Manuel Bentele | 2020-08-28 14:50:51 +0200 |
commit | 042b7ca9932f05ed7c69efc7b15fa58e42c6eb3c (patch) | |
tree | 5957cd5d532ce311f85c2bb2d7a9a861da18cd35 /src/kernel/core.c | |
parent | [KERNEL] convert to blk-mq and ktime (diff) | |
download | dnbd3-042b7ca9932f05ed7c69efc7b15fa58e42c6eb3c.tar.gz dnbd3-042b7ca9932f05ed7c69efc7b15fa58e42c6eb3c.tar.xz dnbd3-042b7ca9932f05ed7c69efc7b15fa58e42c6eb3c.zip |
[KERNEL] convert debug messages and clean up code
This change converts all debug messages to support the Linux kernel's
dynamic debug feature. Debug messages can be enabled or disabled by
the debug feature if the
- kernel module is built in debug mode (EXTRA_CFLAGS=-g -DDEBUG)
- Linux kernel supports dynamic debug (CONFIG_DYNAMIC_DEBUG is set)
This patch removes outdated kernel compatibility macros (used for Linux
kernels in version 4.x) and cleans up the kernel module's code.
Diffstat (limited to 'src/kernel/core.c')
-rw-r--r-- | src/kernel/core.c | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/src/kernel/core.c b/src/kernel/core.c index 69a2540..6e7d052 100644 --- a/src/kernel/core.c +++ b/src/kernel/core.c @@ -18,42 +18,51 @@ * */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + #include "clientconfig.h" #include "dnbd3.h" #include "blk.h" int major; static unsigned int max_devs = NUMBER_DEVICES; -static dnbd3_device_t *dnbd3_device; +static dnbd3_device_t *dnbd3_devices; + +struct device *dnbd3_device_to_dev(dnbd3_device_t *dev) +{ + return disk_to_dev(dev->disk); +} static int __init dnbd3_init(void) { int i; - dnbd3_device = kcalloc(max_devs, sizeof(*dnbd3_device), GFP_KERNEL); - if (!dnbd3_device) + dnbd3_devices = kcalloc(max_devs, sizeof(*dnbd3_devices), GFP_KERNEL); + if (!dnbd3_devices) return -ENOMEM; // initialize block device if ((major = register_blkdev(0, "dnbd3")) == 0) { - printk("ERROR: dnbd3 register_blkdev failed.\n"); + pr_err("register_blkdev failed\n"); return -EIO; } - printk("DNBD3 kernel module loaded. Machine type: " ENDIAN_MODE "\n"); + pr_info("kernel module loaded\n"); + pr_debug("machine type " ENDIAN_MODE "\n"); // add MAX_NUMBER_DEVICES devices for (i = 0; i < max_devs; i++) { - if (dnbd3_blk_add_device(&dnbd3_device[i], i) != 0) + if (dnbd3_blk_add_device(&dnbd3_devices[i], i) != 0) { - printk("ERROR: adding device failed.\n"); + pr_err("dnbd3_blk_add_device failed\n"); return -EIO; // TODO: delete all devices added so far. it could happen that it's not the first one that fails. also call unregister_blkdev and free memory } } - printk("INFO: dnbd3 init successful (%i devices).\n", max_devs); + pr_info("init successful (%i devices)\n", max_devs); + return 0; } @@ -63,16 +72,17 @@ static void __exit dnbd3_exit(void) for (i = 0; i < max_devs; i++) { - dnbd3_blk_del_device(&dnbd3_device[i]); + dnbd3_blk_del_device(&dnbd3_devices[i]); } unregister_blkdev(major, "dnbd3"); - kfree(dnbd3_device); - printk("INFO: dnbd3 exit.\n"); + kfree(dnbd3_devices); + + pr_info("exit kernel module\n"); } -module_init( dnbd3_init); -module_exit( dnbd3_exit); +module_init(dnbd3_init); +module_exit(dnbd3_exit); MODULE_DESCRIPTION("Distributed Network Block Device 3"); MODULE_LICENSE("GPL"); |