Pintitus 2022-03-10 17:23
浏览 166
已结题

linux5.4中内核的late_initcall宏函数使用问题

发现在init.h中和module.h文件中同时定义了late_initcall方法
问题相关代码,请勿粘贴截图

** init.h**中定义如下

#define late_initcall(fn)       __define_initcall(fn, 7)

** module.h**中定义如下

#define late_initcall(fn)       module_init(fn)

运行结果及报错内容

代码驱动包中将几个ko驱动模块合并为ipk文件,运行加载发现使用late_initcall的驱动代码并没有最后运行。我怀疑是因为module.h出了问题。但是屏蔽module.h下的late_initcall会报编译错误

错误如下:error: type defaults to 'int' in declaration of 'late_initcall' [-Werror=implicit-int]

我的解答思路和尝试过的方法

我尝试过将module.h中的方法注释掉发现没有用处
还尝试过将late_initcall替换为module_init,结果运行是一样的,因此我可以断定就是使用的module.h中的定义,但是这样并不是我想要的驱动加载顺序的结果

我想要达到的结果
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 3月18日
    • 创建了问题 3月10日

    悬赏问题

    • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
    • ¥15 安装quartus II18.1时弹出此error,怎么解决?
    • ¥15 keil官网下载psn序列号在哪
    • ¥15 想用adb命令做一个通话软件,播放录音
    • ¥30 Pytorch深度学习服务器跑不通问题解决?
    • ¥15 部分客户订单定位有误的问题
    • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
    • ¥15 Bug traq 数据包 大概什么价
    • ¥15 在anaconda上pytorch和paddle paddle下载报错
    • ¥25 自动填写QQ腾讯文档收集表