首页 > 解决方案 > "MODULE_INFO(retpoline, "Y")" 宏是什么?

问题描述

我在一些驱动程序源代码中看到以下行:

MODULE_INFO(retpoline, "Y")

是做什么的?

标签: clinux-kernellinux-device-driverembedded-linux

解决方案


该宏定义了存储在已编译模块文件中的键值对。您可以使用modinfo命令来显示它们。例如,当你编译这个模块时,modinfo my_module.ko会包含一行

retpoline:      Y

您可以通过在LXR interface上搜索来找到宏的定义及其文档(例如)。它通过在目标文件的部分中定义一个符号来工作。.modinfo

此机制用于加载到内核中的模块和用户级工具(例如modprobe. 标准元数据包括别名许可证版本等。

retpoline标签表明该模块是在构建时支持Spectre的缓解。我不知道为什么驱动程序源代码会明确声明这一点:据我所知,在使用 retpoline 支持进行编译时,它应该自动插入(通过头文件):这是编译器功能,而不是源代码的属性。


推荐阅读