diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/tty/n_gsm.c | 7 |
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) | |||
971 | static void gsm_dlci_data_kick(struct gsm_dlci *dlci) | 971 | static 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 | ||