Dear all,

I've been going through Robert Love's LKD. Here is an excerpt from it regarding registration of interrupt handlers:

"When request_irq() is called with IRQF_SHARED specified, the call succeeds only if the interrupt line is currently not registered, or if all registered handlers on the line also specified IRQF_SHARED. Shared handlers, however, can mix usage of IRQF_DISABLED."

As far as I understand, the first sentence tells that a line currently having shared handlers *will only have* handlers registered with IRQF_SHARED flag in the past. Correct ?

If a interrupt line has been registered by a handler specified as non shared, then whats the point in allowing a new handler with a "shared" flag registering to the same line ? So how does the mixing of shared and unshared interrupt handlers for the same line go together as mentioned by the 2nd sentence ?

Or does it mean that a shared handler which already succeeded the registration can further register a non shared and shared interrupt handlers? ( That doesnt make sense, but still... )  ? Simply put, can someone please elaborate on the second sentence I quoted from the book ?


Thanks and Regards,
Aurabindo J