diff --git a/code/lkm.c b/code/lkm.c index b89e27f7d..468513d32 100644 --- a/code/lkm.c +++ b/code/lkm.c @@ -28,8 +28,8 @@ static struct file_operations lkm_fops = { static int lkm_init(void) { - int ret; printk(KERN_INFO "lkm: init: start\n"); + int ret; ret = register_chrdev(0, DEVICE_NAME, &lkm_fops); if (ret < 0) { @@ -69,12 +69,20 @@ static void lkm_exit(void) { printk(KERN_INFO "lkm: exit: start\n"); + + device_destroy(lkm_class, MKDEV(lkm_major, 0)); + class_unregister(lkm_class); + unregister_chrdev(lkm_major, DEVICE_NAME); + + printk(KERN_INFO "lkm: exit: done\n") } int lkm_open(struct inode *inode, struct file *fp) { printk(KERN_INFO "lkm: open: start\n"); + + printk(KERN_INFO "lkm: open: done\n"); return 0; } @@ -82,6 +90,7 @@ int lkm_release(struct inode *inode, struct file *fp) { printk(KERN_INFO "lkm: release: start\n"); + printk(KERN_INFO "lkm: release: done\n"); return 0; } @@ -89,6 +98,7 @@ long lkm_ioctl(struct file *fp, unsigned num, long unsigned int param) { printk(KERN_INFO "lkm: release: start\n"); + printk(KERN_INFO "lkm: release: done\n"); return 0; }