"MODULE_INFO(retpoline, "Y")" 宏的作用是什么?
What does the "MODULE_INFO(retpoline, "Y")" macro?
我在某些驱动程序源代码中看到以下行:
MODULE_INFO(retpoline, "Y")
是做什么的?
该宏定义了 key-value 对,这些对存储在已编译的模块文件中。您可以使用 modinfo
命令来显示它们。例如,当您编译此模块时,modinfo my_module.ko
将包含一行
retpoline: Y
您可以找到 object 文件的 definition of the macro and its documentation (such as it is) by searching on an LXR interface. It works by defining a symbol in the .modinfo
section。
此机制用于内核中加载的模块和 modprobe
等用户空间工具使用的各种元数据。标准元数据包括aliases, license, version等
retpoline
标签表示模块是用 support for a mitigation against Spectre 构建的。我不知道为什么 driver 源代码会明确声明这一点:据我所知,在使用 retpoline 支持进行编译时,应该自动插入(通过 header):这是一个编译器功能,不是 属性 的源代码。
我在某些驱动程序源代码中看到以下行:
MODULE_INFO(retpoline, "Y")
是做什么的?
该宏定义了 key-value 对,这些对存储在已编译的模块文件中。您可以使用 modinfo
命令来显示它们。例如,当您编译此模块时,modinfo my_module.ko
将包含一行
retpoline: Y
您可以找到 object 文件的 definition of the macro and its documentation (such as it is) by searching on an LXR interface. It works by defining a symbol in the .modinfo
section。
此机制用于内核中加载的模块和 modprobe
等用户空间工具使用的各种元数据。标准元数据包括aliases, license, version等
retpoline
标签表示模块是用 support for a mitigation against Spectre 构建的。我不知道为什么 driver 源代码会明确声明这一点:据我所知,在使用 retpoline 支持进行编译时,应该自动插入(通过 header):这是一个编译器功能,不是 属性 的源代码。