diff --git a/drivers/char/amiserial.c b/drivers/char/amiserial.c
index 39880eb58f356810a0861ed732de0c5fd2e1a1c4..0e2b72f2b8871d96f124581bba1ee724c2f936c0 100644
--- a/drivers/char/amiserial.c
+++ b/drivers/char/amiserial.c
@@ -902,8 +902,7 @@ static int rs_write(struct tty_struct * tty, const unsigned char *buf, int count
 	if (!info->xmit.buf)
 		return 0;
 
-	local_save_flags(flags);
-	local_irq_disable();
+	local_irq_save(flags);
 	while (1) {
 		c = CIRC_SPACE_TO_END(info->xmit.head,
 				      info->xmit.tail,