__ref的意义是什么,使用__ref避免修改警告是否有效?

时间:2014-09-17 09:53:11

标签: linux-kernel

我是linux-kernel的新手。我有疑问。

假设我有一个名为:void foo1()的函数,并且此函数正在调用其他函数foo2(),即:void __cpuinit foo2()。

现在,modpost将报告部分不匹配警告。现在在这种情况下我们有这些选项:

1)我们使用__cpuinit注释函数foo1()。

2)我们从foo2()

中删除__cpuinit

3)我们将__ref注释为函数foo1()

现在在我的情况下我不能选择选项1和2.所以我必须选择选项3。 我的问题;

  • 它会对内存产生多大的影响?(在内存消耗方面,它与选项1和2的情况有何不同?__ ref是否会在内存中长时间保存?)
  • 可以使用__ref?

1 个答案:

答案 0 :(得分:2)

__ref只是压制警告。 它不会删除警告的原因,即,当您从foo2()调用foo1()时,内核仍然会爆炸。

只有在__ref代码被释放后确保foo1() 实际调用foo2()时,才能使用__cpuinit