ioctl nie jest wywoływany, jeśli cmd = 2

Opracowuję moduł jądra, który używa unlocked_ioctl. Przetestowałem ją z jądrem w wersji 2.6.24-23-generic i działa doskonale. Teraz wypróbowałem go z wersją jądra 3.3.1-1-ARCH i dzieje się coś dziwnego: funkcja ioctl nie jest wykonywana, gdy wartość żądania (cmd) wynosi 2. Zwraca 0, ale funkcja nie jest wykonywana. Aby sprawdzić, czy nie zostało wykonane, zrobiłem co następuje:

<code>static long midriver_ioctl(struct file *file,
    unsigned int cmd, unsigned long arg) {

printk("Called with cmd = %d\n", cmd);
</code>

Napisałem program testowy, który wywołuje ioctl dla tego urządzenia od 0 do 4096 i widzę w dmesg komunikat „Wywołany z cmd = n” dla wszystkich tych wartości, z wyjątkiem „2”, jedynego, który nie jest pokazany.

Jakieś wskazówki dotyczące tego, co robię źle?

Z góry dziękuję,

questionAnswers(2)

yourAnswerToTheQuestion