QLC_SIZEOF(stats.xmit_off), QLC_OFF(stats.xmit_off)},
        {"skb_alloc_failure", QLC_SIZEOF(stats.skb_alloc_failure),
                QLC_OFF(stats.skb_alloc_failure)},
+       {"null skb",
+               QLC_SIZEOF(stats.null_skb), QLC_OFF(stats.null_skb)},
+       {"null rxbuf",
+               QLC_SIZEOF(stats.null_rxbuf), QLC_OFF(stats.null_rxbuf)},
+       {"rx dma map error", QLC_SIZEOF(stats.rx_dma_map_error),
+                                        QLC_OFF(stats.rx_dma_map_error)},
+       {"tx dma map error", QLC_SIZEOF(stats.tx_dma_map_error),
+                                        QLC_OFF(stats.tx_dma_map_error)},
 
 };
 
 
                        rds_ring->dma_size, PCI_DMA_FROMDEVICE);
 
        if (pci_dma_mapping_error(pdev, dma)) {
+               adapter->stats.rx_dma_map_error++;
                dev_kfree_skb_any(skb);
                buffer->skb = NULL;
                return -ENOMEM;
                        PCI_DMA_FROMDEVICE);
 
        skb = buffer->skb;
-       if (!skb)
+       if (!skb) {
+               adapter->stats.null_skb++;
                goto no_skb;
+       }
 
        if (likely(adapter->rx_csum && cksum == STATUS_CKSUM_OK)) {
                adapter->stats.csummed++;
 
                if (rxbuf)
                        list_add_tail(&rxbuf->list, &sds_ring->free_list[ring]);
+               else
+                       adapter->stats.null_rxbuf++;
 
 skip:
                for (; desc_cnt > 0; desc_cnt--) {
 
 
        pdev = adapter->pdev;
 
-       if (qlcnic_map_tx_skb(pdev, skb, pbuf))
+       if (qlcnic_map_tx_skb(pdev, skb, pbuf)) {
+               adapter->stats.tx_dma_map_error++;
                goto drop_packet;
+       }
 
        pbuf->skb = skb;
        pbuf->frag_count = frag_count;