Much emphasis has been put on the fact that your interrupt handler must complete its work quickly (as explained in the Keep it fast section and elsewhere). Having said that, a practical issue does crop up. Let's consider this scenario: you have allocated IRQn and have written the interrupt handler function to handle this interrupt when it arrives. As you may recall, the function we're talking about here, commonly referred to as the hardirq or ISR (Interrupt Service Routine) or primary handler, is the second parameter to the request_{threaded}_irq() API, the third parameter to the devm_request_irq() API, and the fourth parameter to the devm_request_threaded_irq() API.
As we mentioned previously, there's a quick heuristic to follow: if your hardirq routine's processing consistently exceeds 100 microseconds, then you will need to use alternate...