ioctl no se llama si cmd = 2

Estoy desarrollando un módulo del kernel que usa unlocked_ioctl. Lo probé con el kernel versión 2.6.24-23-genérico y funciona perfectamente. Ahora lo probé con la versión del kernel 3.3.1-1-ARCH y algo extraño sucede: la función ioctl no se ejecuta cuando el valor de solicitud (cmd) es 2. Devuelve 0, pero la función no se ejecuta. Para comprobar que no está ejecutado hice lo siguiente:

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

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

Escribí un programa de prueba que llama a ioctl para este dispositivo de 0 a 4096, y puedo ver en dmesg el mensaje "Llamado con cmd = n" para todos esos valores, excepto "2", el único que no se muestra.

¿Alguna pista sobre lo que estoy haciendo mal?

Gracias de antemano,

Respuestas a la pregunta(2)

Su respuesta a la pregunta