我正在使用隐藏在Linux Kernel 3.x上的内核模块。我尝试从/ sys / module隐藏和恢复模块。在内核版本3.0和3.2.6上一切正常。我可以加载和卸载模块并隐藏和取消隐藏它。当我在内核3.6.6上卸载模块时,我收到以下错误:
有谁知道如何恢复模块的struct kobject * holder_dir,以便我能够无错误地卸载它?
这是我的代码:
/* hide from /sys/module */
kobject_del(&__this_module.mkobj.kobj);
list_del(&__this_module.mkobj.kobj.entry);
/* add to /sys/module */
kobject_add(&__this_module.mkobj.kobj,__this_module.mkobj.kobj.parent,"xxx");