}
 
        dma_free_coherent(&priv->pdev->dev,
-                         sizeof(*priv->rx_ring[rx_queue_idx]) * priv->rxringcount,
-                         priv->rx_ring[rx_queue_idx],
+                         sizeof(*priv->rx_ring) * priv->rxringcount,
+                         priv->rx_ring,
                          priv->rx_ring_dma[rx_queue_idx]);
-       priv->rx_ring[rx_queue_idx] = NULL;
+       priv->rx_ring = NULL;
 }
 
 static void _rtl92e_free_tx_ring(struct net_device *dev, unsigned int prio)
        int i;
        int rx_queue_idx = 0;
 
-       priv->rx_ring[rx_queue_idx] = dma_alloc_coherent(&priv->pdev->dev,
-                                                        sizeof(*priv->rx_ring[rx_queue_idx]) * priv->rxringcount,
-                                                        &priv->rx_ring_dma[rx_queue_idx],
-                                                        GFP_ATOMIC);
-       if (!priv->rx_ring[rx_queue_idx] ||
-           (unsigned long)priv->rx_ring[rx_queue_idx] & 0xFF) {
+       priv->rx_ring = dma_alloc_coherent(&priv->pdev->dev,
+                                          sizeof(*priv->rx_ring) * priv->rxringcount,
+                                          &priv->rx_ring_dma[rx_queue_idx],
+                                          GFP_ATOMIC);
+       if (!priv->rx_ring || (unsigned long)priv->rx_ring & 0xFF) {
                netdev_warn(dev, "Cannot allocate RX ring\n");
                return -ENOMEM;
        }
                struct sk_buff *skb = dev_alloc_skb(priv->rxbuffersize);
                dma_addr_t *mapping;
 
-               entry = &priv->rx_ring[rx_queue_idx][i];
+               entry = &priv->rx_ring[i];
                if (!skb)
                        return 0;
                skb->dev = dev;
        int rx_queue_idx = 0;
        unsigned long flags = 0;
 
-       if (priv->rx_ring[rx_queue_idx]) {
+       if (priv->rx_ring) {
                struct rx_desc *entry = NULL;
 
                for (i = 0; i < priv->rxringcount; i++) {
-                       entry = &priv->rx_ring[rx_queue_idx][i];
+                       entry = &priv->rx_ring[i];
                        entry->OWN = 1;
                }
                priv->rx_idx[rx_queue_idx] = 0;
        stats.nic_type = NIC_8192E;
 
        while (count--) {
-               struct rx_desc *pdesc = &priv->rx_ring[rx_queue_idx]
+               struct rx_desc *pdesc = &priv->rx_ring
                                        [priv->rx_idx[rx_queue_idx]];
                struct sk_buff *skb = priv->rx_buf[rx_queue_idx]
                                      [priv->rx_idx[rx_queue_idx]];