aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/tty/n_gsm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 0988aaaf2670..c028f3570246 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -971,16 +971,19 @@ static void gsm_dlci_data_sweep(struct gsm_mux *gsm)
971static void gsm_dlci_data_kick(struct gsm_dlci *dlci) 971static void gsm_dlci_data_kick(struct gsm_dlci *dlci)
972{ 972{
973 unsigned long flags; 973 unsigned long flags;
974 int sweep;
974 975
975 spin_lock_irqsave(&dlci->gsm->tx_lock, flags); 976 spin_lock_irqsave(&dlci->gsm->tx_lock, flags);
976 /* If we have nothing running then we need to fire up */ 977 /* If we have nothing running then we need to fire up */
978 sweep = (dlci->gsm->tx_bytes < TX_THRESH_LO);
977 if (dlci->gsm->tx_bytes == 0) { 979 if (dlci->gsm->tx_bytes == 0) {
978 if (dlci->net) 980 if (dlci->net)
979 gsm_dlci_data_output_framed(dlci->gsm, dlci); 981 gsm_dlci_data_output_framed(dlci->gsm, dlci);
980 else 982 else
981 gsm_dlci_data_output(dlci->gsm, dlci); 983 gsm_dlci_data_output(dlci->gsm, dlci);
982 } else if (dlci->gsm->tx_bytes < TX_THRESH_LO) 984 }
983 gsm_dlci_data_sweep(dlci->gsm); 985 if (sweep)
986 gsm_dlci_data_sweep(dlci->gsm);
984 spin_unlock_irqrestore(&dlci->gsm->tx_lock, flags); 987 spin_unlock_irqrestore(&dlci->gsm->tx_lock, flags);
985} 988}
986 989