Commit 06993ca6 authored by Bryan O'Sullivan's avatar Bryan O'Sullivan Committed by Linus Torvalds

[PATCH] IB/ipath: use vmalloc to allocate struct ipath_devdata

This is not a DMA target, so no need to use dma_alloc_coherent on it.
Signed-off-by: default avatarBryan O'Sullivan <bryan.osullivan@qlogic.com>
Cc: "Michael S. Tsirkin" <mst@mellanox.co.il>
Cc: Roland Dreier <rolandd@cisco.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 0ed9a4a0
...@@ -171,14 +171,13 @@ static void ipath_free_devdata(struct pci_dev *pdev, ...@@ -171,14 +171,13 @@ static void ipath_free_devdata(struct pci_dev *pdev,
list_del(&dd->ipath_list); list_del(&dd->ipath_list);
spin_unlock_irqrestore(&ipath_devs_lock, flags); spin_unlock_irqrestore(&ipath_devs_lock, flags);
} }
dma_free_coherent(&pdev->dev, sizeof(*dd), dd, dd->ipath_dma_addr); vfree(dd);
} }
static struct ipath_devdata *ipath_alloc_devdata(struct pci_dev *pdev) static struct ipath_devdata *ipath_alloc_devdata(struct pci_dev *pdev)
{ {
unsigned long flags; unsigned long flags;
struct ipath_devdata *dd; struct ipath_devdata *dd;
dma_addr_t dma_addr;
int ret; int ret;
if (!idr_pre_get(&unit_table, GFP_KERNEL)) { if (!idr_pre_get(&unit_table, GFP_KERNEL)) {
...@@ -186,15 +185,12 @@ static struct ipath_devdata *ipath_alloc_devdata(struct pci_dev *pdev) ...@@ -186,15 +185,12 @@ static struct ipath_devdata *ipath_alloc_devdata(struct pci_dev *pdev)
goto bail; goto bail;
} }
dd = dma_alloc_coherent(&pdev->dev, sizeof(*dd), &dma_addr, dd = vmalloc(sizeof(*dd));
GFP_KERNEL);
if (!dd) { if (!dd) {
dd = ERR_PTR(-ENOMEM); dd = ERR_PTR(-ENOMEM);
goto bail; goto bail;
} }
memset(dd, 0, sizeof(*dd));
dd->ipath_dma_addr = dma_addr;
dd->ipath_unit = -1; dd->ipath_unit = -1;
spin_lock_irqsave(&ipath_devs_lock, flags); spin_lock_irqsave(&ipath_devs_lock, flags);
......
...@@ -163,7 +163,6 @@ struct ipath_devdata { ...@@ -163,7 +163,6 @@ struct ipath_devdata {
* only written to by the chip, not the driver. * only written to by the chip, not the driver.
*/ */
volatile __le64 *ipath_hdrqtailptr; volatile __le64 *ipath_hdrqtailptr;
dma_addr_t ipath_dma_addr;
/* ipath_cfgports pointers */ /* ipath_cfgports pointers */
struct ipath_portdata **ipath_pd; struct ipath_portdata **ipath_pd;
/* sk_buffs used by port 0 eager receive queue */ /* sk_buffs used by port 0 eager receive queue */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment