Bem, fizemos a leitura do código como estava sendo sugerido nos comentários e encontramos a seção do patch onde o sistema pode entrar em loop infinito (em irq) e não sairá dele.
No entanto, quando colocamos o printk nessa função irq, o problema não estava sendo reproduzido. (problema de tempo que você sabe!)
Então, finalmente, meu colega tentou o método da velha escola para alternar o GPIO e ajudou. Isso também foi difícil, já que mais de duas entradas da alternância de GPIO impediriam a reprodução.
dentro da função ele usou o GPIO como segue,
func()
{
//set gpio high
some doubtfull code..
....
//set gpio low
}
Foi assim que ele rastreou o código problemático e sua solução está disponível no linux-4.1 e ele está testando.
@ShankarSM: Se você está lendo isso, todo o crédito vai para você rastreá-lo: -)