【发布时间】:2019-12-24 11:03:42
【问题描述】:
我在一些驱动程序源代码中看到了这一行:
MODULE_INFO(retpoline, "Y")
是什么?
【问题讨论】:
标签: c linux-kernel linux-device-driver embedded-linux
我在一些驱动程序源代码中看到了这一行:
MODULE_INFO(retpoline, "Y")
是什么?
【问题讨论】:
标签: c linux-kernel linux-device-driver embedded-linux
此宏定义存储在已编译模块文件中的键值对。您可以使用modinfo 命令来显示它们。例如,当你编译这个模块时,modinfo my_module.ko 会包含一行
retpoline: Y
您可以通过搜索an LXR interface 找到宏的definition 及其文档(例如)。它由目标文件的defining a symbol in the .modinfo section 工作。
此机制用于加载到内核中的模块和用户级工具(例如modprobe)使用的各种元数据。标准元数据包括aliases、license、version等。
retpoline 标签表示该模块是使用support for a mitigation 构建的,而不是Spectre。我不知道为什么驱动程序源代码会显式声明这一点:据我所知,在使用 retpoline 支持进行编译时,它应该自动插入(通过标头):这是编译器功能,而不是源代码的属性。
【讨论】: