我有一个用户级程序,它与内核模块通信以运行计时器。我正在试图弄清楚如何让内核模块停止用户级程序并退出。
如果我在现有计时器运行时执行rmmod mymodule.ko
,控制台会输出消息“错误:模块mymodule正在使用中”。我可以通过lsmod
看到它被一个进程使用。我尝试在我的内核模块中的printk()
函数的最顶部放置一个module_exit()
语句,以查看该函数是否可以在任何地方运行,但事实并非如此。
所以我的问题是,如果在使用活动计时器执行module_exit()
时我的内核模块rmmod
没有运行,那么我怎么能告诉它退出呢?我知道我也需要del_timer()
所以我不会导致段错误或内核恐慌。