diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
| commit | bbb20089a3275a19e475dbc21320c3742e3ca423 (patch) | |
| tree | 216fdc1cbef450ca688135c5b8969169482d9a48 /drivers/dma/ioat/pci.c | |
| parent | 3e48e656903e9fd8bc805c6a2c4264d7808d315b (diff) | |
| parent | 657a77fa7284d8ae28dfa48f1dc5d919bf5b2843 (diff) | |
Merge branch 'dmaengine' into async-tx-next
Conflicts:
crypto/async_tx/async_xor.c
drivers/dma/ioat/dma_v2.h
drivers/dma/ioat/pci.c
drivers/md/raid5.c
Diffstat (limited to 'drivers/dma/ioat/pci.c')
| -rw-r--r-- | drivers/dma/ioat/pci.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/dma/ioat/pci.c b/drivers/dma/ioat/pci.c index b77d3a2864ad..c788fa266470 100644 --- a/drivers/dma/ioat/pci.c +++ b/drivers/dma/ioat/pci.c | |||
| @@ -83,6 +83,8 @@ static int ioat_dca_enabled = 1; | |||
| 83 | module_param(ioat_dca_enabled, int, 0644); | 83 | module_param(ioat_dca_enabled, int, 0644); |
| 84 | MODULE_PARM_DESC(ioat_dca_enabled, "control support of dca service (default: 1)"); | 84 | MODULE_PARM_DESC(ioat_dca_enabled, "control support of dca service (default: 1)"); |
| 85 | 85 | ||
| 86 | struct kmem_cache *ioat2_cache; | ||
| 87 | |||
| 86 | #define DRV_NAME "ioatdma" | 88 | #define DRV_NAME "ioatdma" |
| 87 | 89 | ||
| 88 | static struct pci_driver ioat_pci_driver = { | 90 | static struct pci_driver ioat_pci_driver = { |
| @@ -182,15 +184,27 @@ static void __devexit ioat_remove(struct pci_dev *pdev) | |||
| 182 | 184 | ||
| 183 | static int __init ioat_init_module(void) | 185 | static int __init ioat_init_module(void) |
| 184 | { | 186 | { |
| 187 | int err; | ||
| 188 | |||
| 185 | pr_info("%s: Intel(R) QuickData Technology Driver %s\n", | 189 | pr_info("%s: Intel(R) QuickData Technology Driver %s\n", |
| 186 | DRV_NAME, IOAT_DMA_VERSION); | 190 | DRV_NAME, IOAT_DMA_VERSION); |
| 187 | 191 | ||
| 188 | return pci_register_driver(&ioat_pci_driver); | 192 | ioat2_cache = kmem_cache_create("ioat2", sizeof(struct ioat_ring_ent), |
| 193 | 0, SLAB_HWCACHE_ALIGN, NULL); | ||
| 194 | if (!ioat2_cache) | ||
| 195 | return -ENOMEM; | ||
| 196 | |||
| 197 | err = pci_register_driver(&ioat_pci_driver); | ||
| 198 | if (err) | ||
| 199 | kmem_cache_destroy(ioat2_cache); | ||
| 200 | |||
| 201 | return err; | ||
| 189 | } | 202 | } |
| 190 | module_init(ioat_init_module); | 203 | module_init(ioat_init_module); |
| 191 | 204 | ||
| 192 | static void __exit ioat_exit_module(void) | 205 | static void __exit ioat_exit_module(void) |
| 193 | { | 206 | { |
| 194 | pci_unregister_driver(&ioat_pci_driver); | 207 | pci_unregister_driver(&ioat_pci_driver); |
| 208 | kmem_cache_destroy(ioat2_cache); | ||
| 195 | } | 209 | } |
| 196 | module_exit(ioat_exit_module); | 210 | module_exit(ioat_exit_module); |
