diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 90060018928f31a10a4ca39ab7e10a963861599f..51447ccccbab25c3a88b2271f43615a6a40928bc 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -891,7 +891,7 @@ static int gsm_data_kick(struct gsm_mux *gsm)
/* Serialize control messages and control channel messages first */
list_for_each_entry_safe(msg, nmsg, &gsm->tx_ctrl_list, list) {
if (gsm->constipated && !gsm_is_flow_ctrl_msg(msg))
- return -EAGAIN;
+ continue;
ret = gsm_send_packet(gsm, msg);
switch (ret) {
case -ENOSPC: