1

関数を使用してデバイスdevice_create()を作成しています が、Ubuntu 8.04 カーネル バージョン 2.6.24 で警告を作成しています。

警告: format の引数が多すぎます

これが私がこの関数をどのように使用しているかです:

device_create(my_class, NULL, MKDEV(major, 0), NULL, "my_dev");

この同じコードは、Ubuntu 10.04 -カーネル バージョン 2.6.32で正常に動作しますが、 Ubuntu 8.04 -カーネル バージョン 2.6.24で警告を作成します。

誰でもその警告を削除するために修正してもらえますか?

前もって感謝します。シンドゥ

4

1 に答える 1

1

このための古いAPIには、NULLとして指定するdrvdataの4番目の引数がありませんでした。したがって、NULLを取り除くと、問題ないはずです。

とはいえ、他のAPIも変更されているため、他の問題が発生する可能性があります。カーネルバージョン間で正しいことを行ういくつかのプリプロセッサマクロを定義することを検討してください。例えば:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
    #define my_device_create(a, b, c, d) device_create(a, b, c, NULL, d)
#else
    #define my_device_create(a, b, c, d) device_create(a, b, c, d)
#endif
于 2012-05-25T14:48:43.350 に答える