diff --git a/target/linux/xburst/files-2.6.32/arch/mips/jz4740/gpio.c b/target/linux/xburst/files-2.6.32/arch/mips/jz4740/gpio.c
index df5df5cd0b4d0cbc0fc8b0262360537cb1b880e0..8a99f4d37b4d85049df421034002e63335922ab0 100644
--- a/target/linux/xburst/files-2.6.32/arch/mips/jz4740/gpio.c
+++ b/target/linux/xburst/files-2.6.32/arch/mips/jz4740/gpio.c
@@ -312,8 +312,8 @@ static unsigned int jz_gpio_irq_startup(unsigned int irq)
 
 	jz_gpio_set_irq_bit(irq, JZ_REG_GPIO_SELECT_SET);
 
-	jz_gpio_irq_unmask(irq);
 	desc->status &= ~IRQ_MASKED;
+	jz_gpio_irq_unmask(irq);
 
 	return 0;
 }