Only wake up MSR wait queue on actual modem-status changes.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        if (priv->current_status != priv->prev_status) {
                priv->diff_status |= priv->current_status ^
                        priv->prev_status;
-               wake_up_interruptible(&port->port.delta_msr_wait);
+
+               if (priv->diff_status & UART_MSR_MASK)
+                       wake_up_interruptible(&port->port.delta_msr_wait);
+
                priv->prev_status = priv->current_status;
        }
        spin_unlock_irqrestore(&priv->lock, flags);
 
 #define CONTROL_RTS    0x10    /* request to send */
 #define CONTROL_RESET  0x08    /* sent with output report */
 
+#define UART_MSR_MASK  0xf0
 #define UART_RI                0x80    /* ring indicator */
 #define UART_CD                0x40    /* carrier detect */
 #define UART_DSR       0x20    /* data set ready */