static int get_serial_info(struct tty_struct *tty, struct serial_struct *ss)
 {
        struct serial_state *state = tty->driver_data;
+       unsigned int close_delay, closing_wait;
 
        tty_lock(tty);
+       close_delay = jiffies_to_msecs(state->tport.close_delay) / 10;
+       closing_wait = state->tport.closing_wait;
+       if (closing_wait != ASYNC_CLOSING_WAIT_NONE)
+               closing_wait = jiffies_to_msecs(closing_wait) / 10;
+
        ss->line = tty->index;
        ss->port = state->port;
        ss->flags = state->tport.flags;
        ss->xmit_fifo_size = state->xmit_fifo_size;
        ss->baud_base = state->baud_base;
-       ss->close_delay = state->tport.close_delay;
-       ss->closing_wait = state->tport.closing_wait;
+       ss->close_delay = close_delay;
+       ss->closing_wait = closing_wait;
        ss->custom_divisor = state->custom_divisor;
        tty_unlock(tty);
        return 0;
        struct tty_port *port = &state->tport;
        bool change_spd;
        int                     retval = 0;
+       unsigned int close_delay, closing_wait;
 
        tty_lock(tty);
        change_spd = ((ss->flags ^ port->flags) & ASYNC_SPD_MASK) ||
                tty_unlock(tty);
                return -EINVAL;
        }
-  
+
+       close_delay = msecs_to_jiffies(ss->close_delay * 10);
+       closing_wait = ss->closing_wait;
+       if (closing_wait != ASYNC_CLOSING_WAIT_NONE)
+               closing_wait = msecs_to_jiffies(closing_wait * 10);
+
        if (!serial_isroot()) {
                if ((ss->baud_base != state->baud_base) ||
-                   (ss->close_delay != port->close_delay) ||
-                   (ss->closing_wait != port->closing_wait) ||
+                   (close_delay != port->close_delay) ||
+                   (closing_wait != port->closing_wait) ||
                    (ss->xmit_fifo_size != state->xmit_fifo_size) ||
                    ((ss->flags & ~ASYNC_USR_MASK) !=
                     (port->flags & ~ASYNC_USR_MASK))) {
        port->flags = ((port->flags & ~ASYNC_FLAGS) |
                        (ss->flags & ASYNC_FLAGS));
        state->custom_divisor = ss->custom_divisor;
-       port->close_delay = ss->close_delay * HZ/100;
-       port->closing_wait = ss->closing_wait * HZ/100;
+       port->close_delay = close_delay;
+       port->closing_wait = closing_wait;
 
 check_and_exit:
        if (tty_port_initialized(port)) {