else
                slot_nr = MVS_CHIP_SLOT_SZ;
 
-       if (mvi->dma_pool)
-               pci_pool_destroy(mvi->dma_pool);
+       dma_pool_destroy(mvi->dma_pool);
 
        if (mvi->tx)
                dma_free_coherent(mvi->dev,
                goto err_out;
 
        sprintf(pool_name, "%s%d", "mvs_dma_pool", mvi->id);
-       mvi->dma_pool = pci_pool_create(pool_name, mvi->pdev, MVS_SLOT_BUF_SZ, 16, 0);
+       mvi->dma_pool = dma_pool_create(pool_name, &mvi->pdev->dev,
+                                       MVS_SLOT_BUF_SZ, 16, 0);
        if (!mvi->dma_pool) {
                        printk(KERN_DEBUG "failed to create dma pool %s.\n", pool_name);
                        goto err_out;
 
        slot->n_elem = n_elem;
        slot->slot_tag = tag;
 
-       slot->buf = pci_pool_alloc(mvi->dma_pool, GFP_ATOMIC, &slot->buf_dma);
+       slot->buf = dma_pool_alloc(mvi->dma_pool, GFP_ATOMIC, &slot->buf_dma);
        if (!slot->buf) {
                rc = -ENOMEM;
                goto err_out_tag;
        return rc;
 
 err_out_slot_buf:
-       pci_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma);
+       dma_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma);
 err_out_tag:
        mvs_tag_free(mvi, tag);
 err_out:
        }
 
        if (slot->buf) {
-               pci_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma);
+               dma_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma);
                slot->buf = NULL;
        }
        list_del_init(&slot->entry);