0

カーネル モジュールの使用中に、カーネル ヌル ポインター逆参照エラーを処理できません。これが私がやろうとしていることです

inputfile = filp_open(kernel_args->infile, O_RDONLY, 0); //Open a file

if(inputfile == NULL) //Check if the file exists
{
    printk("\nInput file not found on drive\n");
    error = -ENOENT;
    goto quit;
}

しかし、カーネルは、null をチェックするときに「oops」を返します。nullをチェックしていて、やるべきことをしているので、それを回避する方法がわかりません。

4

3 に答える 3

1

コード内でそのような oops を生成する唯一のポインターは、kernel_args です。

さらにいくつかのヒント: - カーネルは信頼できるコードです。NULL ポインターをチェックするべきではありません (カーネル モジュール テストなどを作成している場合を除きます) - printk の使用法が間違っています。printk ログ レベルがありません。世界\n");

于 2012-12-28T02:03:36.870 に答える
0

カーネル空間の引数の有効性を確認してください。

お気に入り :

if (!kargs)
    if(kargs->infile == NULL)
于 2012-12-27T22:58:32.947 に答える