Проблема

С определённой версии ядра Linux, многие модули перестали собираться.
Сообщая при этом:

error: unknown field 'ioctl' specified in initializer

Как исправить

1. В структуре file_operations нужно заменить ".ioctl = " на ".unlocked_ioctl ="

2. Заменить параметры функции, на которую указывает .unlocked_ioctl. А именно, у брать первый аргумент. Получится:

static long servo_ioctl (struct file *file, unsigned int cmd, unsigned long param)

3. Заменить возвращаемое значение этой же функции со static int на static long.

Добавить комментарий


Поиск