主要原因在于:虽然内核驱动模块参数进行EXPORT_SYMBOL_GPL()的处理,但是A模块在加载如果比B模块晚,那么就会出现B模块加载A模块中导出的函数出错,当前还没有导出的函数符号。
这种类型和模块自动加载的优先级很类似,后面的模块注册要依赖于前者的模块设备的注册,前者没有生成,而后者就没用存在的必要性,自然报错。
本文探讨了内核驱动模块加载时遇到的问题:若A模块晚于B模块加载,则B模块可能无法正确获取A模块通过EXPORT_SYMBOL_GPL导出的函数符号,导致运行错误。文章分析了这一现象的原因及其与模块自动加载优先级之间的联系。
主要原因在于:虽然内核驱动模块参数进行EXPORT_SYMBOL_GPL()的处理,但是A模块在加载如果比B模块晚,那么就会出现B模块加载A模块中导出的函数出错,当前还没有导出的函数符号。
这种类型和模块自动加载的优先级很类似,后面的模块注册要依赖于前者的模块设备的注册,前者没有生成,而后者就没用存在的必要性,自然报错。
3182

被折叠的 条评论
为什么被折叠?