diff options
Diffstat (limited to 'net/ax25/ax25_subr.c')
| -rw-r--r-- | net/ax25/ax25_subr.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/net/ax25/ax25_subr.c b/net/ax25/ax25_subr.c index d8f215733175..034aa10a5198 100644 --- a/net/ax25/ax25_subr.c +++ b/net/ax25/ax25_subr.c | |||
| @@ -64,20 +64,15 @@ void ax25_frames_acked(ax25_cb *ax25, unsigned short nr) | |||
| 64 | 64 | ||
| 65 | void ax25_requeue_frames(ax25_cb *ax25) | 65 | void ax25_requeue_frames(ax25_cb *ax25) |
| 66 | { | 66 | { |
| 67 | struct sk_buff *skb, *skb_prev = NULL; | 67 | struct sk_buff *skb; |
| 68 | 68 | ||
| 69 | /* | 69 | /* |
| 70 | * Requeue all the un-ack-ed frames on the output queue to be picked | 70 | * Requeue all the un-ack-ed frames on the output queue to be picked |
| 71 | * up by ax25_kick called from the timer. This arrangement handles the | 71 | * up by ax25_kick called from the timer. This arrangement handles the |
| 72 | * possibility of an empty output queue. | 72 | * possibility of an empty output queue. |
| 73 | */ | 73 | */ |
| 74 | while ((skb = skb_dequeue(&ax25->ack_queue)) != NULL) { | 74 | while ((skb = skb_dequeue_tail(&ax25->ack_queue)) != NULL) |
| 75 | if (skb_prev == NULL) | 75 | skb_queue_head(&ax25->write_queue, skb); |
| 76 | skb_queue_head(&ax25->write_queue, skb); | ||
| 77 | else | ||
| 78 | skb_append(skb_prev, skb, &ax25->write_queue); | ||
| 79 | skb_prev = skb; | ||
| 80 | } | ||
| 81 | } | 76 | } |
| 82 | 77 | ||
| 83 | /* | 78 | /* |
