struct fw_chunk *chunk;
        int total_nr = 0;
        int i;
-       struct pci_pool *pool;
+       struct dma_pool *pool;
        void **virts;
        dma_addr_t *phys;
 
                kfree(virts);
                return -ENOMEM;
        }
-       pool = pci_pool_create("ipw2200", priv->pci_dev, CB_MAX_LENGTH, 0, 0);
+       pool = dma_pool_create("ipw2200", &priv->pci_dev->dev, CB_MAX_LENGTH, 0,
+                              0);
        if (!pool) {
-               IPW_ERROR("pci_pool_create failed\n");
+               IPW_ERROR("dma_pool_create failed\n");
                kfree(phys);
                kfree(virts);
                return -ENOMEM;
 
                nr = (chunk_len + CB_MAX_LENGTH - 1) / CB_MAX_LENGTH;
                for (i = 0; i < nr; i++) {
-                       virts[total_nr] = pci_pool_alloc(pool, GFP_KERNEL,
+                       virts[total_nr] = dma_pool_alloc(pool, GFP_KERNEL,
                                                         &phys[total_nr]);
                        if (!virts[total_nr]) {
                                ret = -ENOMEM;
        }
  out:
        for (i = 0; i < total_nr; i++)
-               pci_pool_free(pool, virts[i], phys[i]);
+               dma_pool_free(pool, virts[i], phys[i]);
 
-       pci_pool_destroy(pool);
+       dma_pool_destroy(pool);
        kfree(phys);
        kfree(virts);