Здравствуйте!
Столкнулся с непонятной для меня ошибкой:
Есть драйвер, в котором объявлена структура file_operations:
static struct file_operations fops = {
.owner = THIS_MODULE,
.open = Open,
.release = Close,
.compat_ioctl = Ioctl,
.mmap = Mmap,
};
::ioctl(arg1, arg2, arg3);
Проблема в том, что функция Ioctl(), описанная в коде драйвера при этом не вызывается. Это установлено точно, с помощью отладочных выводов. А вызов ioctl из тестовой программы возвращает -1 (при том что в коде драйвера в Ioctl() в принципе нет return -1;).
При этом, все остальные функции из file_operations успешно вызываются из тестовой программы (установлено так же с помощью отладочных выводов).
Подскажите пожалуйста, в чем может быть причина этой проблемы и как от нее избавится?
Заранее спасибо!