diff --git a/target/linux/atheros/files/arch/mips/atheros/reset.c b/target/linux/atheros/files/arch/mips/atheros/reset.c
index a94954d091ab057b460f967b4df204af8897ae19..eb525da20793ebb71b400cc8fd836d876d538cc8 100644
--- a/target/linux/atheros/files/arch/mips/atheros/reset.c
+++ b/target/linux/atheros/files/arch/mips/atheros/reset.c
@@ -129,10 +129,8 @@ static irqreturn_t button_handler(int irq, void *dev_id)
 
 	seen = jiffies;
 	if(event->set && no_release_workaround)
-	{
-		rst_button_timer.expires = jiffies + (HZ / 4);
-		add_timer(&rst_button_timer);
-	}
+		mod_timer(&rst_button_timer, jiffies + (HZ / 4));
+
 	return IRQ_HANDLED;
 }