簡體   English   中英

編譯內核模塊時出現“警告,putname未定義”

[英]“WARNING, putname undefined” when complie my kernel module

我正在編寫一個內核模塊,該模塊將檢查VFS中的某些內容。 在此模塊中,我需要使用內核API“ putname”,其定義為:

#ifdef CONFIG_AUDITSYSCALL
void putname(const char *name)
{
if (unlikely(!audit_dummy_context()))
    audit_putname(name);
else
    __putname(name);
}
EXPORT_SYMBOL(putname);

當我在Fedora 18中使用內核3.6.10進行編譯時,一切正常,該模塊運行正常,但是當我將其切換到內核3.11.4時。 編譯器給我一個警告,“ putname is undefined”,當我用“ __putname”替換“ putname”時,可以編譯內核模塊,但是當它運行時,會出問題。 回溯顯示它位於__putname中。 在這個問題上有人可以幫助我嗎? 謝謝

參見Jeff的提交#91a27b2a756784714e924e5e854b919273082d26

此補丁集將轉換getname()/ putname()接口以返回結構而不是字符串。 目前,該結構僅跟蹤內核空間中的字符串以及該字符串的原始用戶態指針。

v3.6之后立即更改了界面。 因此,您必須考慮到此更改來重新編寫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM