¿Es posible que se llame al controlador de interrupciones de un controlador antes de que se complete la sonda?

¿Es posible que se llame al controlador de interrupciones de un controlador antes de que se complete la sonda?

Estoy revisando los módulos del kernel del controlador en el kernel de Linux y generalmente se llama a request_irq() desde la función de sonda. drivers/net/ethernet/natsemi/ns83820.ko puede ser un ejemplo de ello.

request_irq() llama a request_threaded_irq() y esto se menciona en los comentarios:

This call allocates interrupt resources and enables the
interrupt line and IRQ handling. From the point this
call is made your handler function may be invoked.

enlace:https://elixir.bootlin.com/linux/latest/source/kernel/irq/manage.c#L1984

Eso significa que se puede invocar el controlador incluso antes de que se complete la sonda.

Pero he notado que en muchos controladores no se tienen en cuenta las variables compartidas o los campos de desarrollo que se pueden leer y modificar simultáneamente en la sonda y el controlador de interrupciones.

Quiero saber con qué frecuencia ocurre este caso en el que la sonda y el controlador de interrupciones se ejecutan en paralelo.

Respuesta1

Se puede llamar al controlador de interrupciones mientras la sonda aún no ha finalizado. Sin embargo, para que eso suceda, el dispositivo debe inicializarse y generar una interrupción. Muy a menudo, la función de sonda primero inicializará el dispositivo y garantizará que no genere interrupciones antes de solicitar el irq. Esto garantiza que no se llamará al controlador hasta que el controlador esté listo para manejar las interrupciones.

Una excepción común son los controladores RTC y recientemente he solucionado algunos de ellos. Esto sucede porque el RTC todavía se está ejecutando mientras Linux no y el controlador no debe reinicializar el dispositivo cada vez que arranca. Aquí hay un ejemplo:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=10d0c768cc6d581523d673b9d1b54213f8a5eb24

información relacionada