serial/aspeed-vuart: fix a couple mod_timer() calls
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 26 Apr 2018 05:50:55 +0000 (08:50 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 May 2018 11:51:11 +0000 (13:51 +0200)
The "unthrottle_timeout" is HZ/10 but mod_timer() takes a the actual
jiffie where you want it to timeout, not an offset.

Fixes: 5909c0bf9c7a ("serial/aspeed-vuart: Implement quick throttle mechanism")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_aspeed_vuart.c

index 023db326675765ade9f382c3964c110274ea5da2..435bec40dee6e4eebb87fc65f8b12489f3f99e77 100644 (file)
@@ -226,7 +226,8 @@ static void aspeed_vuart_unthrottle_exp(struct timer_list *timer)
        struct uart_8250_port *up = vuart->port;
 
        if (!tty_buffer_space_avail(&up->port.state->port)) {
-               mod_timer(&vuart->unthrottle_timer, unthrottle_timeout);
+               mod_timer(&vuart->unthrottle_timer,
+                         jiffies + unthrottle_timeout);
                return;
        }
 
@@ -271,7 +272,7 @@ static int aspeed_vuart_handle_irq(struct uart_port *port)
                        if (!timer_pending(&vuart->unthrottle_timer)) {
                                vuart->port = up;
                                mod_timer(&vuart->unthrottle_timer,
-                                               unthrottle_timeout);
+                                         jiffies + unthrottle_timeout);
                        }
 
                } else {