ath6kl: Fix htc_packet leak in ath6kl_htc_rx_fetch()
authorVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Mon, 3 Oct 2011 11:58:25 +0000 (17:28 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 11 Nov 2011 10:50:54 +0000 (12:50 +0200)
It is found during the code review. As the leak would happen only
in failure case, the imapct is not easily visible.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/htc.c

index 7bc9884..4a03dac 100644 (file)
@@ -1715,12 +1715,10 @@ static int ath6kl_htc_rx_fetch(struct htc_target *target,
                        packet = list_first_entry(rx_pktq, struct htc_packet,
                                                   list);
 
-                       list_del(&packet->list);
-
                        /* fully synchronous */
                        packet->completion = NULL;
 
-                       if (!list_empty(rx_pktq))
+                       if (!list_is_singular(rx_pktq))
                                /*
                                 * look_aheads in all packet
                                 * except the last one in the
@@ -1735,7 +1733,7 @@ static int ath6kl_htc_rx_fetch(struct htc_target *target,
                        if (status)
                                return status;
 
-                       list_add_tail(&packet->list, comp_pktq);
+                       list_move_tail(&packet->list, comp_pktq);
                }
        }