From 66a80ce18f1718dfea99b86647c9bcfb542aad89 Mon Sep 17 00:00:00 2001 From: Russ Gorby Date: Mon, 13 Aug 2012 13:45:30 +0100 Subject: [PATCH] --- yaml --- r: 325687 b: refs/heads/master c: 88ed2a60610974443335c924d7cb8e5dcf9dbdc1 h: refs/heads/master i: 325685: f78f47f8254098827a5a2e723b71fc7fcce8f35e 325683: 511ec47caf0c93097fa35b3906a17d1f4241c2bd 325679: 95bb92c2a63e5888c4ca6844d3ba05a485dbc0c1 v: v3 --- [refs] | 2 +- trunk/drivers/tty/n_gsm.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 2cea42a37e3e..de91cc349455 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 329e56780e514a7ab607bcb51a52ab0dc2669414 +refs/heads/master: 88ed2a60610974443335c924d7cb8e5dcf9dbdc1 diff --git a/trunk/drivers/tty/n_gsm.c b/trunk/drivers/tty/n_gsm.c index a8c82f5d769b..3e210a430fb3 100644 --- a/trunk/drivers/tty/n_gsm.c +++ b/trunk/drivers/tty/n_gsm.c @@ -868,7 +868,7 @@ static int gsm_dlci_data_output_framed(struct gsm_mux *gsm, /* dlci->skb is locked by tx_lock */ if (dlci->skb == NULL) { - dlci->skb = skb_dequeue(&dlci->skb_list); + dlci->skb = skb_dequeue_tail(&dlci->skb_list); if (dlci->skb == NULL) return 0; first = 1; @@ -892,8 +892,11 @@ static int gsm_dlci_data_output_framed(struct gsm_mux *gsm, /* FIXME: need a timer or something to kick this so it can't get stuck with no work outstanding and no buffer free */ - if (msg == NULL) + if (msg == NULL) { + skb_queue_tail(&dlci->skb_list, dlci->skb); + dlci->skb = NULL; return -ENOMEM; + } dp = msg->data; if (dlci->adaption == 4) { /* Interruptible framed (Packetised Data) */