Is this actually possible?

I am chasing a very infrequent bug which results in a timeout on a comms link and it seems to be caused by the IRQ handler not responding to the IRQ, which is level sensitive. (I know this much because I have some hardware debug which I can monitor on a scope). I see the IRQ but the handler doesn't respond.

This doesn't make much sense to me. The only reasonable explanation I can think of is that the IRQ is masked, but I haven't changed any of the kernel code, simply added a new driver. I don't yet know enough about the Linux interrupt system internals to comment properly.

I'm using an ARM AT91 btw on 2.6.30.