From: Ralf Baechle I don't see why there is a memory barrier in copy_from_read_buf() at all. Even if it was useful spin_unlock_irqrestore implies a barrier. Signed-off-by: Ralf Baechle Cc: Alan Cox Signed-off-by: Andrew Morton --- drivers/char/n_tty.c | 1 - 1 file changed, 1 deletion(-) diff -puN drivers/char/n_tty.c~tty-remove-useless-memory-barrier drivers/char/n_tty.c --- a/drivers/char/n_tty.c~tty-remove-useless-memory-barrier +++ a/drivers/char/n_tty.c @@ -1151,7 +1151,6 @@ static int copy_from_read_buf(struct tty n = min(*nr, n); spin_unlock_irqrestore(&tty->read_lock, flags); if (n) { - mb(); retval = copy_to_user(*b, &tty->read_buf[tty->read_tail], n); n -= retval; spin_lock_irqsave(&tty->read_lock, flags); _