fix some irq handling