staging: et131x: use dma_alloc... instead of pci_alloc...
authorMark Einon <mark.einon@gmail.com>
Thu, 20 Oct 2011 00:18:43 +0000 (01:18 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 23 Oct 2011 08:07:11 +0000 (10:07 +0200)
Use dma_allocs instead of pci_allocs, so we can use GFP_KERNEL
allocations.

Also removed this item from the TODO list

Signed-off-by: Mark Einon <mark.einon@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/et131x/README
drivers/staging/et131x/et131x.c

index 1e0fcf4..87b9360 100644 (file)
@@ -9,7 +9,6 @@ driver as they did not build properly at the time.
 
 TODO:
        - Use of kmem_cache seems a bit unusual
-       - Use dma_alloc_... in place of pci_alloc_...
        - It's too late stopping the tx queue when there is no room for the current packet. The condition should be detected for the next packet.
        - PCI_VDEVICE ?
 
index 0fbb77d..06ba4a9 100644 (file)
@@ -1965,9 +1965,10 @@ int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter)
 
        /* Allocate an area of memory for Free Buffer Ring 1 */
        bufsize = (sizeof(struct fbr_desc) * rx_ring->fbr[0]->num_entries) + 0xfff;
-       rx_ring->fbr[0]->ring_virtaddr = pci_alloc_consistent(adapter->pdev,
-                                               bufsize,
-                                               &rx_ring->fbr[0]->ring_physaddr);
+       rx_ring->fbr[0]->ring_virtaddr = dma_alloc_coherent(&adapter->pdev->dev,
+                                       bufsize,
+                                       &rx_ring->fbr[0]->ring_physaddr,
+                                       GFP_KERNEL);
        if (!rx_ring->fbr[0]->ring_virtaddr) {
                dev_err(&adapter->pdev->dev,
                          "Cannot alloc memory for Free Buffer Ring 1\n");
@@ -1995,9 +1996,10 @@ int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter)
 #ifdef USE_FBR0
        /* Allocate an area of memory for Free Buffer Ring 0 */
        bufsize = (sizeof(struct fbr_desc) * rx_ring->fbr[1]->num_entries) + 0xfff;
-       rx_ring->fbr[1]->ring_virtaddr = pci_alloc_consistent(adapter->pdev,
+       rx_ring->fbr[1]->ring_virtaddr = dma_alloc_coherent(&adapter->pdev->dev,
                                                bufsize,
-                                               &rx_ring->fbr[1]->ring_physaddr);
+                                               &rx_ring->fbr[1]->ring_physaddr,
+                                               GFP_KERNEL);
        if (!rx_ring->fbr[1]->ring_virtaddr) {
                dev_err(&adapter->pdev->dev,
                          "Cannot alloc memory for Free Buffer Ring 0\n");
@@ -2042,8 +2044,8 @@ int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter)
                fbr_chunksize =
                    (FBR_CHUNKS * rx_ring->fbr[0]->buffsize) + fbr1_align - 1;
                rx_ring->fbr[0]->mem_virtaddrs[i] =
-                   pci_alloc_consistent(adapter->pdev, fbr_chunksize,
-                                        &rx_ring->fbr[0]->mem_physaddrs[i]);
+                   dma_alloc_coherent(&adapter->pdev->dev, fbr_chunksize,
+                                        &rx_ring->fbr[0]->mem_physaddrs[i], GFP_KERNEL);
 
                if (!rx_ring->fbr[0]->mem_virtaddrs[i]) {
                        dev_err(&adapter->pdev->dev,
@@ -2094,8 +2096,8 @@ int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter)
                fbr_chunksize =
                    ((FBR_CHUNKS + 1) * rx_ring->fbr[1]->buffsize) - 1;
                rx_ring->fbr[1]->mem_virtaddrs[i] =
-                   pci_alloc_consistent(adapter->pdev, fbr_chunksize,
-                                        &rx_ring->fbr[1]->mem_physaddrs[i]);
+                   dma_alloc_coherent(&adapter->pdev->dev, fbr_chunksize,
+                                        &rx_ring->fbr[1]->mem_physaddrs[i], GFP_KERNEL);
 
                if (!rx_ring->fbr[1]->mem_virtaddrs[i]) {
                        dev_err(&adapter->pdev->dev,
@@ -2137,9 +2139,10 @@ int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter)
        pktstat_ringsize =
            sizeof(struct pkt_stat_desc) * adapter->rx_ring.psr_num_entries;
 
-       rx_ring->ps_ring_virtaddr = pci_alloc_consistent(adapter->pdev,
+       rx_ring->ps_ring_virtaddr = dma_alloc_coherent(&adapter->pdev->dev,
                                                  pktstat_ringsize,
-                                                 &rx_ring->ps_ring_physaddr);
+                                                 &rx_ring->ps_ring_physaddr,
+                                                 GFP_KERNEL);
 
        if (!rx_ring->ps_ring_virtaddr) {
                dev_err(&adapter->pdev->dev,
@@ -2157,9 +2160,10 @@ int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter)
         */
 
        /* Allocate an area of memory for writeback of status information */
-       rx_ring->rx_status_block = pci_alloc_consistent(adapter->pdev,
+       rx_ring->rx_status_block = dma_alloc_coherent(&adapter->pdev->dev,
                                            sizeof(struct rx_status_block),
-                                           &rx_ring->rx_status_bus);
+                                           &rx_ring->rx_status_bus,
+                                           GFP_KERNEL);
        if (!rx_ring->rx_status_block) {
                dev_err(&adapter->pdev->dev,
                          "Cannot alloc memory for Status Block\n");
@@ -2992,8 +2996,8 @@ int et131x_tx_dma_memory_alloc(struct et131x_adapter *adapter)
         */
        desc_size = (sizeof(struct tx_desc) * NUM_DESC_PER_RING_TX) + 4096 - 1;
        tx_ring->tx_desc_ring =
-           (struct tx_desc *) pci_alloc_consistent(adapter->pdev, desc_size,
-                                                   &tx_ring->tx_desc_ring_pa);
+           (struct tx_desc *) dma_alloc_coherent(&adapter->pdev->dev, desc_size,
+                                                   &tx_ring->tx_desc_ring_pa, GFP_KERNEL);
        if (!adapter->tx_ring.tx_desc_ring) {
                dev_err(&adapter->pdev->dev,
                                        "Cannot alloc memory for Tx Ring\n");
@@ -3008,9 +3012,10 @@ int et131x_tx_dma_memory_alloc(struct et131x_adapter *adapter)
         * storing the adjusted address.
         */
        /* Allocate memory for the Tx status block */
-       tx_ring->tx_status = pci_alloc_consistent(adapter->pdev,
+       tx_ring->tx_status = dma_alloc_coherent(&adapter->pdev->dev,
                                                    sizeof(u32),
-                                                   &tx_ring->tx_status_pa);
+                                                   &tx_ring->tx_status_pa,
+                                                   GFP_KERNEL);
        if (!adapter->tx_ring.tx_status_pa) {
                dev_err(&adapter->pdev->dev,
                                  "Cannot alloc memory for Tx status block\n");