else
                priv->rx_ring_sz = sizeof(struct rtl8180_rx_desc);
 
-       priv->rx_ring = pci_alloc_consistent(priv->pdev,
-                                            priv->rx_ring_sz * 32,
-                                            &priv->rx_ring_dma);
-
+       priv->rx_ring = pci_zalloc_consistent(priv->pdev, priv->rx_ring_sz * 32,
+                                             &priv->rx_ring_dma);
        if (!priv->rx_ring || (unsigned long)priv->rx_ring & 0xFF) {
                wiphy_err(dev->wiphy, "Cannot allocate RX ring\n");
                return -ENOMEM;
        }
 
-       memset(priv->rx_ring, 0, priv->rx_ring_sz * 32);
        priv->rx_idx = 0;
 
        for (i = 0; i < 32; i++) {
        dma_addr_t dma;
        int i;
 
-       ring = pci_alloc_consistent(priv->pdev, sizeof(*ring) * entries, &dma);
+       ring = pci_zalloc_consistent(priv->pdev, sizeof(*ring) * entries,
+                                    &dma);
        if (!ring || (unsigned long)ring & 0xFF) {
                wiphy_err(dev->wiphy, "Cannot allocate TX ring (prio = %d)\n",
                          prio);
                return -ENOMEM;
        }
 
-       memset(ring, 0, sizeof(*ring)*entries);
        priv->tx_ring[prio].desc = ring;
        priv->tx_ring[prio].dma = dma;
        priv->tx_ring[prio].idx = 0;