qtnfmac: fix free_xfer_buffer cleanup
authorSergey Matyukevich <sergey.matyukevich.os@quantenna.com>
Tue, 29 Aug 2017 12:16:22 +0000 (15:16 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 31 Aug 2017 12:57:39 +0000 (15:57 +0300)
Check if skb tracking arrays has been already allocated. This additional
check handles the case when init partially failed.

Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c

index bfbcd0bf75bf196fcaa51629324b18633ff1998f..2921d8069bf2d2909d82d276fda496b3e27035fd 100644 (file)
@@ -483,7 +483,7 @@ static void free_xfer_buffers(void *data)
 
        /* free rx buffers */
        for (i = 0; i < priv->rx_bd_num; i++) {
-               if (priv->rx_skb[i]) {
+               if (priv->rx_skb && priv->rx_skb[i]) {
                        rxbd = &priv->rx_bd_vbase[i];
                        paddr = QTN_HOST_ADDR(le32_to_cpu(rxbd->addr_h),
                                              le32_to_cpu(rxbd->addr));
@@ -496,7 +496,7 @@ static void free_xfer_buffers(void *data)
 
        /* free tx buffers */
        for (i = 0; i < priv->tx_bd_num; i++) {
-               if (priv->tx_skb[i]) {
+               if (priv->tx_skb && priv->tx_skb[i]) {
                        dev_kfree_skb_any(priv->tx_skb[i]);
                        priv->tx_skb[i] = NULL;
                }