aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_driver.c
diff options
context:
space:
mode:
authorBryan O'Sullivan <bos@pathscale.com>2006-09-28 11:59:59 -0400
committerRoland Dreier <rolandd@cisco.com>2006-09-28 14:16:25 -0400
commit9929b0fb0f35f54371e9364bab809bcd753f9d3a (patch)
tree1722f36becc47589bb7b0d98ad00c10dece2a95e /drivers/infiniband/hw/ipath/ipath_driver.c
parent221e31985b490309eb9ae33ac815deae3b5aa021 (diff)
IB/ipath: Driver support for userspace sharing of HW contexts
This allows multiple userspace processes to share a single hardware context in a master/slave arrangement. It is backwards binary compatible with existing userspace. Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_driver.c')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_driver.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c
index a01301d0753c..0fe37c5467ac 100644
--- a/drivers/infiniband/hw/ipath/ipath_driver.c
+++ b/drivers/infiniband/hw/ipath/ipath_driver.c
@@ -1827,9 +1827,9 @@ void ipath_free_pddata(struct ipath_devdata *dd, struct ipath_portdata *pd)
1827 dma_free_coherent(&dd->pcidev->dev, size, 1827 dma_free_coherent(&dd->pcidev->dev, size,
1828 base, pd->port_rcvegrbuf_phys[e]); 1828 base, pd->port_rcvegrbuf_phys[e]);
1829 } 1829 }
1830 vfree(pd->port_rcvegrbuf); 1830 kfree(pd->port_rcvegrbuf);
1831 pd->port_rcvegrbuf = NULL; 1831 pd->port_rcvegrbuf = NULL;
1832 vfree(pd->port_rcvegrbuf_phys); 1832 kfree(pd->port_rcvegrbuf_phys);
1833 pd->port_rcvegrbuf_phys = NULL; 1833 pd->port_rcvegrbuf_phys = NULL;
1834 pd->port_rcvegrbuf_chunks = 0; 1834 pd->port_rcvegrbuf_chunks = 0;
1835 } else if (pd->port_port == 0 && dd->ipath_port0_skbs) { 1835 } else if (pd->port_port == 0 && dd->ipath_port0_skbs) {
@@ -1845,6 +1845,9 @@ void ipath_free_pddata(struct ipath_devdata *dd, struct ipath_portdata *pd)
1845 vfree(skbs); 1845 vfree(skbs);
1846 } 1846 }
1847 kfree(pd->port_tid_pg_list); 1847 kfree(pd->port_tid_pg_list);
1848 vfree(pd->subport_uregbase);
1849 vfree(pd->subport_rcvegrbuf);
1850 vfree(pd->subport_rcvhdr_base);
1848 kfree(pd); 1851 kfree(pd);
1849} 1852}
1850 1853