2012-05-25 5 views
1

Я использую функцию для создания устройству device_create() но его создание предупреждения в Ubuntu 8,04 версии ядра 2.6.24:версия ядра 2.6.24 и 2.6.32 device_create

Внимание: слишком много аргументов для формата

Вот как я использую эту функцию:

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

Th это тот же код работает отлично с Ubuntu 10.04 - версии ядра 2.6.32 но создает предупреждение в Ubuntu 8,04 - версия ядра 2.6.24!

Может ли кто-нибудь, пожалуйста, внести исправления, чтобы удалить это предупреждение?

Заранее спасибо. Sindhu

ответ

1

У старого API для этого не было четвертого аргумента для drvdata, который вы поставляете как NULL. Так что избавитесь от 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 
+0

Большое вам спасибо, это сработало для меня .. – Raheel

Смежные вопросы