<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=WordSection1>
<p class=MsoNormal>--- hw/mthca/kernel/hca_data.h Tue Apr 27
18:49:06 2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/hca_data.h Mon Jun 28 10:52:26
2010<o:p></o:p></p>
<p class=MsoNormal>@@ -28,7 +28,7 @@<o:p></o:p></p>
<p class=MsoNormal> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE<o:p></o:p></p>
<p class=MsoNormal> * SOFTWARE.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * $Id: hca_data.h 1630 2008-10-05 19:29:40Z leonidk $<o:p></o:p></p>
<p class=MsoNormal>+ * $Id: hca_data.h 5526 2010-02-03 10:10:56Z leonid $<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #ifndef __HCA_DATA_H__<o:p></o:p></p>
<p class=MsoNormal>@@ -239,7 +239,6 @@<o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal> setup_ci_interface(<o:p></o:p></p>
<p class=MsoNormal> IN const ib_net64_t ca_guid,<o:p></o:p></p>
<p class=MsoNormal>- IN const int is_livefish,<o:p></o:p></p>
<p class=MsoNormal> OUT ci_interface_t *p_interface
);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal>@@ -324,10 +323,6 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal> mlnx_memory_if(<o:p></o:p></p>
<p class=MsoNormal>- IN OUT ci_interface_t *p_interface
);<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-void<o:p></o:p></p>
<p class=MsoNormal>-mlnx_memory_if_livefish(<o:p></o:p></p>
<p class=MsoNormal> IN OUT ci_interface_t *p_interface
);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/kernel/hca_memory.c Tue Apr 27 18:49:06
2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/hca_memory.c Mon Jun 28 10:52:26 2010<o:p></o:p></p>
<p class=MsoNormal>@@ -28,7 +28,7 @@<o:p></o:p></p>
<p class=MsoNormal> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE<o:p></o:p></p>
<p class=MsoNormal> * SOFTWARE.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * $Id: hca_memory.c 2019 2009-03-09 08:36:31Z leonidk $<o:p></o:p></p>
<p class=MsoNormal>+ * $Id: hca_memory.c 5526 2010-02-03 10:10:56Z leonid $<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -136,17 +136,6 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> HCA_ENTER(HCA_DBG_MEMORY);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if
(mthca_is_livefish(to_mdev(ib_pd_p->device))) {<o:p></o:p></p>
<p class=MsoNormal>- mr_p = kzalloc(sizeof *mr_p,
GFP_KERNEL);<o:p></o:p></p>
<p class=MsoNormal>- if (!mr_p) {<o:p></o:p></p>
<p class=MsoNormal>- status =
IB_INSUFFICIENT_MEMORY;<o:p></o:p></p>
<p class=MsoNormal>- goto err_mem;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- mr_p->device =
ib_pd_p->device;<o:p></o:p></p>
<p class=MsoNormal>- mr_p->pd = ib_pd_p;<o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> // sanity checks<o:p></o:p></p>
<p class=MsoNormal> if( !cl_is_blockable() ) {<o:p></o:p></p>
<p class=MsoNormal> status = IB_UNSUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>@@ -181,7 +170,6 @@<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> // results<o:p></o:p></p>
<p class=MsoNormal>-done:<o:p></o:p></p>
<p class=MsoNormal> if (ph_mr) *ph_mr =
(ib_mr_handle_t)mr_p;<o:p></o:p></p>
<p class=MsoNormal> *p_lkey = mr_p->lkey;<o:p></o:p></p>
<p class=MsoNormal> *p_rkey = cl_hton32( mr_p->rkey );<o:p></o:p></p>
<p class=MsoNormal>@@ -191,7 +179,6 @@<o:p></o:p></p>
<p class=MsoNormal> err_reg_phys_mr:<o:p></o:p></p>
<p class=MsoNormal> err_invalid_parm:<o:p></o:p></p>
<p class=MsoNormal> err_unsupported:<o:p></o:p></p>
<p class=MsoNormal>-err_mem:<o:p></o:p></p>
<p class=MsoNormal> if (status != IB_SUCCESS) <o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> HCA_PRINT(TRACE_LEVEL_ERROR
,HCA_DBG_MEMORY,<o:p></o:p></p>
<p class=MsoNormal>@@ -288,15 +275,9 @@<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> ib_api_status_t status;<o:p></o:p></p>
<p class=MsoNormal> int err;<o:p></o:p></p>
<p class=MsoNormal>- struct ib_mr *ib_mr = (struct ib_mr *)h_mr;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> HCA_ENTER(HCA_DBG_SHIM);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if
(mthca_is_livefish(to_mdev(ib_mr->device))) {<o:p></o:p></p>
<p class=MsoNormal>- kfree(ib_mr);<o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> // sanity checks<o:p></o:p></p>
<p class=MsoNormal> if( !cl_is_blockable() ) {<o:p></o:p></p>
<p class=MsoNormal> status =
IB_UNSUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>@@ -312,7 +293,6 @@<o:p></o:p></p>
<p class=MsoNormal> goto err_dereg_mr;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-done:<o:p></o:p></p>
<p class=MsoNormal> status = IB_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> err_dereg_mr:<o:p></o:p></p>
<p class=MsoNormal>@@ -589,13 +569,4 @@<o:p></o:p></p>
<p class=MsoNormal> p_interface->query_mw = mlnx_query_mw;<o:p></o:p></p>
<p class=MsoNormal> p_interface->destroy_mw =
mlnx_destroy_mw;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-void<o:p></o:p></p>
<p class=MsoNormal>-mlnx_memory_if_livefish(<o:p></o:p></p>
<p class=MsoNormal>- IN OUT ci_interface_t *p_interface
)<o:p></o:p></p>
<p class=MsoNormal>-{<o:p></o:p></p>
<p class=MsoNormal>- p_interface->register_pmr =
mlnx_register_pmr;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->deregister_mr =
mlnx_deregister_mr;<o:p></o:p></p>
<p class=MsoNormal>-}<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/kernel/hca_pnp.c Tue Apr 27
18:49:06 2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/hca_pnp.c Mon Jun 28 10:52:26
2010<o:p></o:p></p>
<p class=MsoNormal>@@ -238,9 +238,7 @@<o:p></o:p></p>
<p class=MsoNormal> return NULL;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- setup_ci_interface( p_ext->hca.guid,<o:p></o:p></p>
<p class=MsoNormal>- !!mthca_is_livefish(p_ext->hca.mdev),<o:p></o:p></p>
<p class=MsoNormal>- pIfc );<o:p></o:p></p>
<p class=MsoNormal>+ setup_ci_interface( p_ext->hca.guid, pIfc
);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> pIfc->p_hca_obj = &p_ext->hca.hob;<o:p></o:p></p>
<p class=MsoNormal> pIfc->vend_id =
(uint32_t)p_ext->hcaConfig.VendorID;<o:p></o:p></p>
<p class=MsoNormal>@@ -276,10 +274,6 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> HCA_ENTER( HCA_DBG_PNP );<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- // there will be no resources for
"livefish" (PCI memory controller mode)<o:p></o:p></p>
<p class=MsoNormal>- if (!pHcaResList || !pHostResList)<o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal> p_ext =
(hca_dev_ext_t*)p_dev_obj->DeviceExtension;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> // store the bus number for reset of Tavor<o:p></o:p></p>
<p class=MsoNormal>@@ -304,16 +298,16 @@<o:p></o:p></p>
<p class=MsoNormal> if( pHcaRes->Type ==
CmResourceTypeInterrupt )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> p_ext->interruptInfo
= *pHostRes;<o:p></o:p></p>
<p class=MsoNormal>- if ( g_processor_affinity == 0xFFFFFFFF ) <o:p></o:p></p>
<p class=MsoNormal>+ if (
g_processor_affinity == 0xFFFFFFFF ) <o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- /*
<o:p></o:p></p>
<p class=MsoNormal>+ /*
<o:p></o:p></p>
<p class=MsoNormal> *
Calculate the mask of the last processor<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> KAFFINITY n_active_processors_bitmask;<o:p></o:p></p>
<p class=MsoNormal> uint32_t
last_processor_mask = 0 , tmp_processor_mask = 1;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> n_active_processors_bitmask
= KeQueryActiveProcessors();<o:p></o:p></p>
<p class=MsoNormal>- while ( tmp_processor_mask &
n_active_processors_bitmask )<o:p></o:p></p>
<p class=MsoNormal>+ while
( tmp_processor_mask & n_active_processors_bitmask )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> last_processor_mask
= tmp_processor_mask;<o:p></o:p></p>
<p class=MsoNormal> tmp_processor_mask
= tmp_processor_mask << 1;<o:p></o:p></p>
<p class=MsoNormal>@@ -383,7 +377,6 @@<o:p></o:p></p>
<p class=MsoNormal> status =
STATUS_UNSUCCESSFUL;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-done:<o:p></o:p></p>
<p class=MsoNormal> HCA_EXIT( HCA_DBG_PNP );<o:p></o:p></p>
<p class=MsoNormal> return status;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>@@ -413,14 +406,6 @@<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-static int mthca_get_livefish_info(struct mthca_dev *mdev,
__be64 *node_guid, u32 *hw_id)<o:p></o:p></p>
<p class=MsoNormal>-{<o:p></o:p></p>
<p class=MsoNormal>- *node_guid = cl_hton64((uint64_t)(ULONG_PTR)mdev);<o:p></o:p></p>
<p class=MsoNormal>- mdev->ib_dev.node_guid = *node_guid;<o:p></o:p></p>
<p class=MsoNormal>- *hw_id = 0;<o:p></o:p></p>
<p class=MsoNormal>- return 0;<o:p></o:p></p>
<p class=MsoNormal>-}<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> static NTSTATUS<o:p></o:p></p>
<p class=MsoNormal> hca_start(<o:p></o:p></p>
<p class=MsoNormal> IN DEVICE_OBJECT*
const p_dev_obj,<o:p></o:p></p>
<p class=MsoNormal>@@ -432,6 +417,7 @@<o:p></o:p></p>
<p class=MsoNormal> IO_STACK_LOCATION *pIoStack;<o:p></o:p></p>
<p class=MsoNormal> POWER_STATE powerState;<o:p></o:p></p>
<p class=MsoNormal> DEVICE_DESCRIPTION devDesc;<o:p></o:p></p>
<p class=MsoNormal>+ int err;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> HCA_ENTER( HCA_DBG_PNP );<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -504,21 +490,13 @@<o:p></o:p></p>
<p class=MsoNormal> return status;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- /*leo: get node GUID */<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- int err;<o:p></o:p></p>
<p class=MsoNormal>- if
(mthca_is_livefish(p_ext->hca.mdev)) <o:p></o:p></p>
<p class=MsoNormal>- err =
mthca_get_livefish_info( p_ext->hca.mdev, &p_ext->hca.guid,
&p_ext->hca.hw_ver );<o:p></o:p></p>
<p class=MsoNormal>- else<o:p></o:p></p>
<p class=MsoNormal>- err =
mthca_get_dev_info( p_ext->hca.mdev, &p_ext->hca.guid,
&p_ext->hca.hw_ver );<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- if (err) {<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- //TODO: no
cleanup on error<o:p></o:p></p>
<p class=MsoNormal>- HCA_PRINT(
TRACE_LEVEL_ERROR,HCA_DBG_PNP, <o:p></o:p></p>
<p class=MsoNormal>- ("can't
get guid - mthca_query_port()"));<o:p></o:p></p>
<p class=MsoNormal>- return
STATUS_INSUFFICIENT_RESOURCES;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ err = mthca_get_dev_info( p_ext->hca.mdev,
&p_ext->hca.guid, &p_ext->hca.hw_ver );<o:p></o:p></p>
<p class=MsoNormal>+ if (err) {<o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal>+ //TODO: no cleanup on error<o:p></o:p></p>
<p class=MsoNormal>+ HCA_PRINT(
TRACE_LEVEL_ERROR,HCA_DBG_PNP, <o:p></o:p></p>
<p class=MsoNormal>+ ("can't
get guid - mthca_query_port()"));<o:p></o:p></p>
<p class=MsoNormal>+ return
STATUS_INSUFFICIENT_RESOURCES;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* queue HCA */<o:p></o:p></p>
<p class=MsoNormal>@@ -549,8 +527,7 @@<o:p></o:p></p>
<p class=MsoNormal> DRV_VERSION,
DRV_RELDATE<o:p></o:p></p>
<p class=MsoNormal> ));<o:p></o:p></p>
<p class=MsoNormal> HCA_PRINT_EV(TRACE_LEVEL_INFORMATION
,HCA_DBG_LOW ,<o:p></o:p></p>
<p class=MsoNormal>- ("Flags
%s%s%s%s%s%s%s\n", <o:p></o:p></p>
<p class=MsoNormal>- (mdev->mthca_flags
& MTHCA_FLAG_LIVEFISH) ? "Flash Recovery Mode:" : "",<o:p></o:p></p>
<p class=MsoNormal>+ ("Flags
%s%s%s%s%s%s\n", <o:p></o:p></p>
<p class=MsoNormal> (mdev->mthca_flags
& MTHCA_FLAG_MEMFREE) ? "MemFree:" : "",<o:p></o:p></p>
<p class=MsoNormal> (mdev->mthca_flags
& MTHCA_FLAG_NO_LAM) ? "NoLam:" : "",<o:p></o:p></p>
<p class=MsoNormal> (mdev->mthca_flags
& MTHCA_FLAG_FMR) ? "Fmr:" : "",<o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/kernel/hca_verbs.c Tue Apr 27
18:49:06 2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/hca_verbs.c Mon Jun 28 10:52:26
2010<o:p></o:p></p>
<p class=MsoNormal>@@ -28,7 +28,7 @@<o:p></o:p></p>
<p class=MsoNormal> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE<o:p></o:p></p>
<p class=MsoNormal> * SOFTWARE.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * $Id: hca_verbs.c 2166 2009-05-12 13:24:37Z leonidk $<o:p></o:p></p>
<p class=MsoNormal>+ * $Id: hca_verbs.c 5526 2010-02-03 10:10:56Z leonid $<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -85,24 +85,20 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> ib_dev = &p_hca->mdev->ib_dev;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (mthca_is_livefish(p_hca->mdev)) <o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> HCA_PRINT(TRACE_LEVEL_INFORMATION
,HCA_DBG_SHIM,<o:p></o:p></p>
<p class=MsoNormal> ("context 0x%p\n",
ca_context));<o:p></o:p></p>
<p class=MsoNormal> if (pfn_async_event_cb) {<o:p></o:p></p>
<p class=MsoNormal>- status =
mlnx_hobs_set_cb(&p_hca->hob,<o:p></o:p></p>
<p class=MsoNormal>- pfn_async_event_cb,<o:p></o:p></p>
<p class=MsoNormal>- ca_context);<o:p></o:p></p>
<p class=MsoNormal>- if (IB_SUCCESS != status) {<o:p></o:p></p>
<p class=MsoNormal>- goto
err_set_cb;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ status = mlnx_hobs_set_cb(&p_hca->hob,<o:p></o:p></p>
<p class=MsoNormal>+ pfn_async_event_cb,<o:p></o:p></p>
<p class=MsoNormal>+ ca_context);<o:p></o:p></p>
<p class=MsoNormal>+ if (IB_SUCCESS != status) {<o:p></o:p></p>
<p class=MsoNormal>+ goto err_set_cb;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //TODO: do we need something for kernel
users ?<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> // Return pointer to HOB object<o:p></o:p></p>
<p class=MsoNormal>-done: <o:p></o:p></p>
<p class=MsoNormal> if (ph_ca) *ph_ca = &p_hca->hob;<o:p></o:p></p>
<p class=MsoNormal> status = IB_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -417,17 +413,9 @@<o:p></o:p></p>
<p class=MsoNormal> mlnx_close_ca (<o:p></o:p></p>
<p class=MsoNormal> IN ib_ca_handle_t h_ca)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- mlnx_hob_t *hob_p
= (mlnx_hob_t *)h_ca;<o:p></o:p></p>
<p class=MsoNormal> HCA_ENTER(HCA_DBG_SHIM);<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- if (mthca_is_livefish(MDEV_FROM_HOB( hob_p
))) <o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> mlnx_hobs_remove(h_ca);<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-done:<o:p></o:p></p>
<p class=MsoNormal> HCA_EXIT(HCA_DBG_SHIM);<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal> return IB_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -541,10 +529,7 @@<o:p></o:p></p>
<p class=MsoNormal> mlnx_hob_t *hob_p
= (mlnx_hob_t *)h_ca;<o:p></o:p></p>
<p class=MsoNormal> hca_dev_ext_t *ext_p = EXT_FROM_HOB( hob_p
);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (mthca_is_livefish(to_mdev(p_ucontext->device)))<o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal> unmap_crspace_for_all(p_ucontext);<o:p></o:p></p>
<p class=MsoNormal>-done: <o:p></o:p></p>
<p class=MsoNormal> cl_spinlock_acquire(
&ext_p->uctx_lock );<o:p></o:p></p>
<p class=MsoNormal> cl_qlist_remove_item(
&ext_p->uctx_list, &p_ucontext->list_item );<o:p></o:p></p>
<p class=MsoNormal> cl_atomic_dec(&ext_p->usecnt);<o:p></o:p></p>
<p class=MsoNormal>@@ -931,7 +916,7 @@<o:p></o:p></p>
<p class=MsoNormal> ib_api_status_t status =
IB_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal> struct ib_srq *ib_srq = (struct ib_srq
*)h_srq;<o:p></o:p></p>
<p class=MsoNormal> UNUSED_PARAM(p_umv_buf);<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal> HCA_ENTER(HCA_DBG_SRQ);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> err = ibv_modify_srq(ib_srq,
(void*)p_srq_attr, srq_attr_mask);<o:p></o:p></p>
<p class=MsoNormal>@@ -1649,7 +1634,6 @@<o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal> setup_ci_interface(<o:p></o:p></p>
<p class=MsoNormal> IN const ib_net64_t ca_guid,<o:p></o:p></p>
<p class=MsoNormal>- IN const int is_livefish,<o:p></o:p></p>
<p class=MsoNormal> IN OUT ci_interface_t *p_interface
)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> cl_memclr(p_interface,
sizeof(*p_interface));<o:p></o:p></p>
<p class=MsoNormal>@@ -1667,6 +1651,7 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* The real interface. */<o:p></o:p></p>
<p class=MsoNormal> p_interface->open_ca = mlnx_open_ca;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->modify_ca = mlnx_modify_ca; <o:p></o:p></p>
<p class=MsoNormal> p_interface->query_ca = mlnx_query_ca;<o:p></o:p></p>
<p class=MsoNormal> p_interface->close_ca = mlnx_close_ca;<o:p></o:p></p>
<p class=MsoNormal> p_interface->um_open_ca = mlnx_um_open;<o:p></o:p></p>
<p class=MsoNormal>@@ -1678,41 +1663,34 @@<o:p></o:p></p>
<p class=MsoNormal> p_interface->deallocate_pd =
mlnx_deallocate_pd;<o:p></o:p></p>
<p class=MsoNormal> p_interface->vendor_call =
fw_access_ctrl;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (is_livefish) {<o:p></o:p></p>
<p class=MsoNormal>- mlnx_memory_if_livefish(p_interface);<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- else { <o:p></o:p></p>
<p class=MsoNormal>- p_interface->modify_ca =
mlnx_modify_ca; <o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- p_interface->create_av =
mlnx_create_av;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->query_av =
mlnx_query_av;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->modify_av =
mlnx_modify_av;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->destroy_av =
mlnx_destroy_av;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- p_interface->create_srq =
mlnx_create_srq;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->modify_srq =
mlnx_modify_srq;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->query_srq =
mlnx_query_srq;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->destroy_srq =
mlnx_destroy_srq;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- p_interface->create_qp =
mlnx_create_qp;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->create_spl_qp
= mlnx_create_spl_qp;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->modify_qp =
mlnx_modify_qp;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->ndi_modify_qp
= mlnx_ndi_modify_qp;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->query_qp =
mlnx_query_qp;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->destroy_qp =
mlnx_destroy_qp;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- p_interface->create_cq =
mlnx_create_cq;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->resize_cq =
mlnx_resize_cq;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->query_cq =
mlnx_query_cq;<o:p></o:p></p>
<p class=MsoNormal>- p_interface->destroy_cq =
mlnx_destroy_cq;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- p_interface->local_mad =
mlnx_local_mad;<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- mlnx_memory_if(p_interface);<o:p></o:p></p>
<p class=MsoNormal>- mlnx_direct_if(p_interface);<o:p></o:p></p>
<p class=MsoNormal>- mlnx_mcast_if(p_interface);<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->create_av = mlnx_create_av;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->query_av = mlnx_query_av;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->modify_av = mlnx_modify_av;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->destroy_av = mlnx_destroy_av;<o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->create_srq = mlnx_create_srq;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->modify_srq = mlnx_modify_srq;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->query_srq = mlnx_query_srq;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->destroy_srq =
mlnx_destroy_srq;<o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->create_qp = mlnx_create_qp;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->create_spl_qp =
mlnx_create_spl_qp;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->modify_qp = mlnx_modify_qp;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->ndi_modify_qp =
mlnx_ndi_modify_qp;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->query_qp = mlnx_query_qp;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->destroy_qp = mlnx_destroy_qp;<o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->create_cq = mlnx_create_cq;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->resize_cq = mlnx_resize_cq;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->query_cq = mlnx_query_cq;<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->destroy_cq = mlnx_destroy_cq;<o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal>+ p_interface->local_mad = mlnx_local_mad;<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal>+ mlnx_memory_if(p_interface);<o:p></o:p></p>
<p class=MsoNormal>+ mlnx_direct_if(p_interface);<o:p></o:p></p>
<p class=MsoNormal>+ mlnx_mcast_if(p_interface);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> return;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/kernel/mt_memory.h Tue Apr 27 18:49:06
2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/mt_memory.h Mon Jun 28 10:52:26 2010<o:p></o:p></p>
<p class=MsoNormal>@@ -52,13 +52,13 @@<o:p></o:p></p>
<p class=MsoNormal> MT_ASSERT( KeGetCurrentIrql() <=
DISPATCH_LEVEL );<o:p></o:p></p>
<p class=MsoNormal> switch (gfp_mask) {<o:p></o:p></p>
<p class=MsoNormal> case GFP_ATOMIC:<o:p></o:p></p>
<p class=MsoNormal>- ptr =
ExAllocatePoolWithTag( NonPagedPool, bsize, MT_TAG_ATOMIC );<o:p></o:p></p>
<p class=MsoNormal>+ ptr =
ExAllocatePoolWithTagSafeEx( NonPagedPool, bsize, MT_TAG_ATOMIC );<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case GFP_KERNEL:<o:p></o:p></p>
<p class=MsoNormal>- ptr =
ExAllocatePoolWithTag( NonPagedPool, bsize, MT_TAG_KERNEL );<o:p></o:p></p>
<p class=MsoNormal>+ ptr =
ExAllocatePoolWithTagSafeEx( NonPagedPool, bsize, MT_TAG_KERNEL );<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case GFP_HIGHUSER:<o:p></o:p></p>
<p class=MsoNormal>- ptr =
ExAllocatePoolWithTag( NonPagedPool, bsize, MT_TAG_HIGH );<o:p></o:p></p>
<p class=MsoNormal>+ ptr =
ExAllocatePoolWithTagSafeEx( NonPagedPool, bsize, MT_TAG_HIGH );<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> default:<o:p></o:p></p>
<p class=MsoNormal> cl_dbg_out("kmalloc:
unsupported flag %d\n", gfp_mask);<o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/kernel/mt_verbs.c Tue Apr 27
18:49:06 2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/mt_verbs.c Mon Jun 28 10:52:26
2010<o:p></o:p></p>
<p class=MsoNormal>@@ -33,7 +33,7 @@<o:p></o:p></p>
<p class=MsoNormal> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE<o:p></o:p></p>
<p class=MsoNormal> * SOFTWARE.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * $Id: mt_verbs.c 1435 2008-07-23 20:09:45Z shefty $<o:p></o:p></p>
<p class=MsoNormal>+ * $Id: mt_verbs.c 5526 2010-02-03 10:10:56Z leonid $<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #include <ib_verbs.h><o:p></o:p></p>
<p class=MsoNormal>@@ -123,9 +123,6 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> int ibv_dealloc_pd(struct ib_pd *pd)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- if
(mthca_is_livefish(to_mdev(pd->device))) <o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> // we need first to release list of AV MRs
to decrease pd->usecnt<o:p></o:p></p>
<p class=MsoNormal> if (pd->ucontext) {<o:p></o:p></p>
<p class=MsoNormal> struct ib_mr *ib_mr, *tmp;<o:p></o:p></p>
<p class=MsoNormal>@@ -141,7 +138,6 @@<o:p></o:p></p>
<p class=MsoNormal> return -EBUSY;<o:p></o:p></p>
<p class=MsoNormal> } <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-done:<o:p></o:p></p>
<p class=MsoNormal> HCA_PRINT(TRACE_LEVEL_INFORMATION
,HCA_DBG_CQ ,("PD%d use cnt %d, pd_handle %p, ctx %p \n", <o:p></o:p></p>
<p class=MsoNormal> ((struct
mthca_pd*)pd)->pd_num, pd->usecnt, pd, pd->ucontext));<o:p></o:p></p>
<p class=MsoNormal> // direct call is a must, because
"lifefish" devices doesn't fill driver i/f table<o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/kernel/mthca.inx Tue Apr 27
18:49:06 2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/mthca.inx Tue Aug 31
11:59:17 2010<o:p></o:p></p>
<p class=MsoNormal>@@ -122,36 +122,24 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> [HCA.DeviceSection.ntx86]<o:p></o:p></p>
<p class=MsoNormal> %MT23108.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5A44<o:p></o:p></p>
<p class=MsoNormal>-%MT23109.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5A45<o:p></o:p></p>
<p class=MsoNormal> %MT25208.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6278<o:p></o:p></p>
<p class=MsoNormal>-%MT25209.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6279<o:p></o:p></p>
<p class=MsoNormal> %MT25218.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6282<o:p></o:p></p>
<p class=MsoNormal> %MT24204.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5E8C<o:p></o:p></p>
<p class=MsoNormal>-%MT24205.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5E8D<o:p></o:p></p>
<p class=MsoNormal> %MT25204.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6274<o:p></o:p></p>
<p class=MsoNormal>-%MT25205.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6275<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> [HCA.DeviceSection.ntamd64]<o:p></o:p></p>
<p class=MsoNormal> %MT23108.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5A44<o:p></o:p></p>
<p class=MsoNormal>-%MT23109.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5A45<o:p></o:p></p>
<p class=MsoNormal> %MT25208.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6278<o:p></o:p></p>
<p class=MsoNormal>-%MT25209.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6279<o:p></o:p></p>
<p class=MsoNormal> %MT25218.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6282<o:p></o:p></p>
<p class=MsoNormal> %MT24204.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5E8C<o:p></o:p></p>
<p class=MsoNormal>-%MT24205.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5E8D<o:p></o:p></p>
<p class=MsoNormal> %MT25204.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6274<o:p></o:p></p>
<p class=MsoNormal>-%MT25205.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6275<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> [HCA.DeviceSection.ntia64]<o:p></o:p></p>
<p class=MsoNormal> %MT23108.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5A44<o:p></o:p></p>
<p class=MsoNormal>-%MT23109.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5A45<o:p></o:p></p>
<p class=MsoNormal> %MT25208.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6278<o:p></o:p></p>
<p class=MsoNormal>-%MT25209.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6279<o:p></o:p></p>
<p class=MsoNormal> %MT25218.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6282<o:p></o:p></p>
<p class=MsoNormal> %MT24204.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5E8C<o:p></o:p></p>
<p class=MsoNormal>-%MT24205.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_5E8D<o:p></o:p></p>
<p class=MsoNormal> %MT25204.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6274<o:p></o:p></p>
<p class=MsoNormal>-%MT25205.DeviceDesc%=MTHCA.DDInstall,
PCI\VEN_15B3&DEV_6275<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> [MTHCA.DDInstall.ntx86]<o:p></o:p></p>
<p class=MsoNormal> CopyFiles = MTHCA.CopyFiles<o:p></o:p></p>
<p class=MsoNormal>@@ -449,14 +437,10 @@<o:p></o:p></p>
<p class=MsoNormal> MTL="Mellanox Technologies Ltd."<o:p></o:p></p>
<p class=MsoNormal> MTHCA.ServiceDesc = "Driver for Mellanox InfiniHost
Devices"<o:p></o:p></p>
<p class=MsoNormal> MT23108.DeviceDesc="InfiniHost (MT23108) - Mellanox
InfiniBand HCA"<o:p></o:p></p>
<p class=MsoNormal>-MT23109.DeviceDesc="InfiniHost (MT23109) - Mellanox
InfiniBand HCA (burner device)"<o:p></o:p></p>
<p class=MsoNormal> MT25208.DeviceDesc="InfiniHost (MT25208) - Mellanox
InfiniBand HCA for PCI Express"<o:p></o:p></p>
<p class=MsoNormal>-MT25209.DeviceDesc="InfiniHost (MT25209) - Mellanox
InfiniBand HCA for PCI Express (burner device)"<o:p></o:p></p>
<p class=MsoNormal> MT25218.DeviceDesc="InfiniHost III Ex (MT25218) -
Mellanox InfiniBand HCA for PCI Express"<o:p></o:p></p>
<p class=MsoNormal> MT24204.DeviceDesc="InfiniHost III Lx (MT24204) -
Mellanox InfiniBand HCA for PCI Express"<o:p></o:p></p>
<p class=MsoNormal>-MT24205.DeviceDesc="InfiniHost III Lx (MT24205) -
Mellanox InfiniBand HCA for PCI Express (burner device)"<o:p></o:p></p>
<p class=MsoNormal> MT25204.DeviceDesc="InfiniHost III Lx (MT25204) -
Mellanox InfiniBand HCA for PCI Express"<o:p></o:p></p>
<p class=MsoNormal>-MT25205.DeviceDesc="InfiniHost III Lx (MT25205) -
Mellanox InfiniBand HCA for PCI Express (burner device)"<o:p></o:p></p>
<p class=MsoNormal> DiskId = "Mellanox InfiniBand HCA installation
disk"<o:p></o:p></p>
<p class=MsoNormal> Ibbus.ServiceDesc = "InfiniBand Bus/AL (Filter Driver)"<o:p></o:p></p>
<p class=MsoNormal> WinVerbs.ServiceDesc = "WinVerbs Service"<o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/kernel/mthca_dev.h Tue Apr 27 18:49:06
2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/mthca_dev.h Mon Jun 28 10:52:26
2010<o:p></o:p></p>
<p class=MsoNormal>@@ -34,7 +34,7 @@<o:p></o:p></p>
<p class=MsoNormal> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE<o:p></o:p></p>
<p class=MsoNormal> * SOFTWARE.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * $Id: mthca_dev.h 1942 2009-02-11 10:49:02Z tzachid $<o:p></o:p></p>
<p class=MsoNormal>+ * $Id: mthca_dev.h 5526 2010-02-03 10:10:56Z leonid $<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #ifndef MTHCA_DEV_H<o:p></o:p></p>
<p class=MsoNormal>@@ -64,7 +64,6 @@<o:p></o:p></p>
<p class=MsoNormal> MTHCA_FLAG_MEMFREE = 1 << 7,<o:p></o:p></p>
<p class=MsoNormal> MTHCA_FLAG_PCIE = 1 << 8,<o:p></o:p></p>
<p class=MsoNormal> MTHCA_FLAG_SINAI_OPT = 1 << 9,<o:p></o:p></p>
<p class=MsoNormal>- MTHCA_FLAG_LIVEFISH = 1 << 10<o:p></o:p></p>
<p class=MsoNormal> };<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> enum {<o:p></o:p></p>
<p class=MsoNormal>@@ -594,15 +593,6 @@<o:p></o:p></p>
<p class=MsoNormal> ULONG pi_nDataItems,<o:p></o:p></p>
<p class=MsoNormal> ...<o:p></o:p></p>
<p class=MsoNormal> );<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-static inline int mthca_is_livefish(struct mthca_dev *mdev)<o:p></o:p></p>
<p class=MsoNormal>-{<o:p></o:p></p>
<p class=MsoNormal>- if(mdev == NULL) {<o:p></o:p></p>
<p class=MsoNormal>- return TRUE;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- return mdev->mthca_flags &
MTHCA_FLAG_LIVEFISH;<o:p></o:p></p>
<p class=MsoNormal>-}<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> void mthca_get_av_params( struct mthca_ah *ah_p, u8
*port_num, __be16 *dlid, u8 *sr, u8 *path_bits );<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/kernel/mthca_main.c Tue Apr 27 18:49:06
2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/mthca_main.c Mon Jun 28 10:52:26 2010<o:p></o:p></p>
<p class=MsoNormal>@@ -31,7 +31,7 @@<o:p></o:p></p>
<p class=MsoNormal> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE<o:p></o:p></p>
<p class=MsoNormal> * SOFTWARE.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * $Id: mthca_main.c 2142 2009-05-03 09:32:01Z leonidk $<o:p></o:p></p>
<p class=MsoNormal>+ * $Id: mthca_main.c 5526 2010-02-03 10:10:56Z leonid $<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #include "mthca_dev.h"<o:p></o:p></p>
<p class=MsoNormal>@@ -69,8 +69,7 @@<o:p></o:p></p>
<p class=MsoNormal> TAVOR, /*
MT23108 */<o:p></o:p></p>
<p class=MsoNormal> ARBEL_COMPAT, /*
MT25208 in Tavor compat mode */<o:p></o:p></p>
<p class=MsoNormal> ARBEL_NATIVE, /*
MT25218 with extended features */<o:p></o:p></p>
<p class=MsoNormal>- SINAI, /*
MT25204 */<o:p></o:p></p>
<p class=MsoNormal>- LIVEFISH /* a
burning device */<o:p></o:p></p>
<p class=MsoNormal>+ SINAI /*
MT25204 */<o:p></o:p></p>
<p class=MsoNormal> };<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #define MTHCA_FW_VER(major, minor, subminor) \<o:p></o:p></p>
<p class=MsoNormal>@@ -85,8 +84,7 @@<o:p></o:p></p>
<p class=MsoNormal> { MTHCA_FW_VER(3, 3, 2), MTHCA_FW_VER(3, 5,
0), 0, 0 }, /* TAVOR */<o:p></o:p></p>
<p class=MsoNormal> { MTHCA_FW_VER(4, 7, 0), MTHCA_FW_VER(4, 8,
200), 0, 1 }, /* ARBEL_COMPAT */<o:p></o:p></p>
<p class=MsoNormal> { MTHCA_FW_VER(5, 1, 0), MTHCA_FW_VER(5, 3,
0), 1, 1 }, /* ARBEL_NATIVE */<o:p></o:p></p>
<p class=MsoNormal>- { MTHCA_FW_VER(1, 0, 800), MTHCA_FW_VER(1, 2,
0), 1, 1 }, /* SINAI */<o:p></o:p></p>
<p class=MsoNormal>- { MTHCA_FW_VER(0, 0, 0), MTHCA_FW_VER(0, 0,
0), 0, 0 } /* LIVEFISH */<o:p></o:p></p>
<p class=MsoNormal>+ { MTHCA_FW_VER(1, 0, 800), MTHCA_FW_VER(1, 2,
0), 1, 1 } /* SINAI */<o:p></o:p></p>
<p class=MsoNormal> };<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -108,15 +106,6 @@<o:p></o:p></p>
<p class=MsoNormal> HCA(TOPSPIN, ARBEL, ARBEL_NATIVE),<o:p></o:p></p>
<p class=MsoNormal> HCA(TOPSPIN, SINAI_OLD, SINAI),<o:p></o:p></p>
<p class=MsoNormal> HCA(TOPSPIN, SINAI, SINAI),<o:p></o:p></p>
<p class=MsoNormal>- // live fishes<o:p></o:p></p>
<p class=MsoNormal>- HCA(MELLANOX, TAVOR_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(MELLANOX, ARBEL_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(MELLANOX, SINAI_OLD_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(MELLANOX, SINAI_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(TOPSPIN, TAVOR_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(TOPSPIN, ARBEL_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(TOPSPIN, SINAI_OLD_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(TOPSPIN, SINAI_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal> };<o:p></o:p></p>
<p class=MsoNormal> #define MTHCA_PCI_TABLE_SIZE
(sizeof(mthca_pci_table)/sizeof(struct pci_device_id))<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -967,7 +956,6 @@<o:p></o:p></p>
<p class=MsoNormal> InitializeListHead(&ext->hca.hob.event_list);<o:p></o:p></p>
<p class=MsoNormal> KeInitializeSpinLock(&ext->hca.hob.event_list_lock);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-run_as_livefish:<o:p></o:p></p>
<p class=MsoNormal> /* allocate mdev structure */<o:p></o:p></p>
<p class=MsoNormal> mdev = kzalloc(sizeof *mdev, GFP_KERNEL);<o:p></o:p></p>
<p class=MsoNormal> if (!mdev) {<o:p></o:p></p>
<p class=MsoNormal>@@ -982,10 +970,6 @@<o:p></o:p></p>
<p class=MsoNormal> mdev->ext = ext; /*
pointer to DEVICE OBJECT extension */<o:p></o:p></p>
<p class=MsoNormal> mdev->hca_type = p_id->driver_data;<o:p></o:p></p>
<p class=MsoNormal> mdev->ib_dev.mdev = mdev;<o:p></o:p></p>
<p class=MsoNormal>- if (p_id->driver_data == LIVEFISH)<o:p></o:p></p>
<p class=MsoNormal>- mdev->mthca_flags |=
MTHCA_FLAG_LIVEFISH;<o:p></o:p></p>
<p class=MsoNormal>- if (mthca_is_livefish(mdev))<o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal> if (ext->hca_hidden)<o:p></o:p></p>
<p class=MsoNormal> mdev->mthca_flags |=
MTHCA_FLAG_DDR_HIDDEN;<o:p></o:p></p>
<p class=MsoNormal> if
(mthca_hca_table[p_id->driver_data].is_memfree)<o:p></o:p></p>
<p class=MsoNormal>@@ -1042,7 +1026,6 @@<o:p></o:p></p>
<p class=MsoNormal> goto err_cleanup;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- done:<o:p></o:p></p>
<p class=MsoNormal> ext->hca.mdev = mdev;<o:p></o:p></p>
<p class=MsoNormal> mdev->state = MTHCA_DEV_INITIALIZED;<o:p></o:p></p>
<p class=MsoNormal> return 0;<o:p></o:p></p>
<p class=MsoNormal>@@ -1071,20 +1054,6 @@<o:p></o:p></p>
<p class=MsoNormal> err_free_dev:<o:p></o:p></p>
<p class=MsoNormal> kfree(mdev);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- /* we failed device initialization - try to
simulate "livefish" device to facilitate using FW burning tools */<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- USHORT dev_id =
ext->hcaConfig.DeviceID;<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- if (dev_id ==
PCI_DEVICE_ID_MELLANOX_ARBEL)<o:p></o:p></p>
<p class=MsoNormal>- dev_id =
PCI_DEVICE_ID_MELLANOX_ARBEL_COMPAT;<o:p></o:p></p>
<p class=MsoNormal>- p_id = mthca_find_pci_dev(
(unsigned)ext->hcaConfig.VendorID, dev_id + 1 );<o:p></o:p></p>
<p class=MsoNormal>- if (p_id == NULL) {<o:p></o:p></p>
<p class=MsoNormal>- status =
STATUS_NO_SUCH_DEVICE;<o:p></o:p></p>
<p class=MsoNormal>- goto end;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- goto run_as_livefish;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal> end:<o:p></o:p></p>
<p class=MsoNormal> return status;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>@@ -1098,8 +1067,6 @@<o:p></o:p></p>
<p class=MsoNormal> ext->hca.mdev = NULL;<o:p></o:p></p>
<p class=MsoNormal> if (mdev) {<o:p></o:p></p>
<p class=MsoNormal> mdev->state =
MTHCA_DEV_UNINITIALIZED;<o:p></o:p></p>
<p class=MsoNormal>- if (mthca_is_livefish(mdev))<o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal> mthca_unregister_device(mdev);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> for (p = 1; p <=
mdev->limits.num_ports; ++p)<o:p></o:p></p>
<p class=MsoNormal>@@ -1120,7 +1087,6 @@<o:p></o:p></p>
<p class=MsoNormal> mthca_cleanup_uar_table(mdev);<o:p></o:p></p>
<p class=MsoNormal> mthca_close_hca(mdev);<o:p></o:p></p>
<p class=MsoNormal> mthca_cmd_cleanup(mdev);<o:p></o:p></p>
<p class=MsoNormal>-done:<o:p></o:p></p>
<p class=MsoNormal> kfree(mdev);<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/kernel/mthca_provider.c Tue Apr
27 18:49:06 2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/kernel/mthca_provider.c Mon Jun 28
10:52:26 2010<o:p></o:p></p>
<p class=MsoNormal>@@ -31,7 +31,7 @@<o:p></o:p></p>
<p class=MsoNormal> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE<o:p></o:p></p>
<p class=MsoNormal> * SOFTWARE.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * $Id: mthca_provider.c 2033 2009-03-17 16:05:55Z
stansmith $<o:p></o:p></p>
<p class=MsoNormal>+ * $Id: mthca_provider.c 5526 2010-02-03 10:10:56Z leonid $<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #include <ib_smi.h><o:p></o:p></p>
<p class=MsoNormal>@@ -69,15 +69,6 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> RtlZeroMemory(props, sizeof *props);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (mthca_is_livefish(mdev)) {<o:p></o:p></p>
<p class=MsoNormal>- props->max_pd = 1;<o:p></o:p></p>
<p class=MsoNormal>- if ( !mdev || !mdev->ext )<o:p></o:p></p>
<p class=MsoNormal>- return err;<o:p></o:p></p>
<p class=MsoNormal>- props->vendor_id =
mdev->ext->hcaConfig.VendorID;<o:p></o:p></p>
<p class=MsoNormal>- props->vendor_part_id =
mdev->ext->hcaConfig.DeviceID;<o:p></o:p></p>
<p class=MsoNormal>- return 0;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> in_mad = kzalloc(sizeof *in_mad,
GFP_KERNEL);<o:p></o:p></p>
<p class=MsoNormal> out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);<o:p></o:p></p>
<p class=MsoNormal> if (!in_mad || !out_mad)<o:p></o:p></p>
<p class=MsoNormal>@@ -354,9 +345,6 @@<o:p></o:p></p>
<p class=MsoNormal> goto err_nomem;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (mthca_is_livefish(to_mdev(ibdev)))<o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal> err = mthca_uar_alloc(to_mdev(ibdev),
&context->uar);<o:p></o:p></p>
<p class=MsoNormal> if (err) <o:p></o:p></p>
<p class=MsoNormal> goto err_uar_alloc;<o:p></o:p></p>
<p class=MsoNormal>@@ -399,7 +387,6 @@<o:p></o:p></p>
<p class=MsoNormal> goto err_init_user;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-done:<o:p></o:p></p>
<p class=MsoNormal> err = ib_copy_to_umv_buf(p_umv_buf,
&uresp, sizeof uresp);<o:p></o:p></p>
<p class=MsoNormal> if (err) <o:p></o:p></p>
<p class=MsoNormal> goto err_copy_to_umv_buf;<o:p></o:p></p>
<p class=MsoNormal>@@ -428,17 +415,14 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> int mthca_dealloc_ucontext(struct ib_ucontext *context)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- struct mthca_ucontext *mucontext
= to_mucontext(context);<o:p></o:p></p>
<p class=MsoNormal>+ struct mthca_ucontext *mucontext
= to_mucontext(context);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if
(mthca_is_livefish(to_mdev(context->device)))<o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal> mthca_cleanup_user_db_tab(to_mdev(context->device),
&mucontext->uar,<o:p></o:p></p>
<p class=MsoNormal>-
mucontext->db_tab);<o:p></o:p></p>
<p class=MsoNormal>+ mucontext->db_tab);<o:p></o:p></p>
<p class=MsoNormal> MmUnmapLockedPages(
mucontext->ibucontext.user_uar, mucontext->mdl );<o:p></o:p></p>
<p class=MsoNormal> IoFreeMdl(mucontext->mdl);<o:p></o:p></p>
<p class=MsoNormal> iounmap(mucontext->kva, PAGE_SIZE);<o:p></o:p></p>
<p class=MsoNormal> mthca_uar_free(to_mdev(context->device),
&mucontext->uar);<o:p></o:p></p>
<p class=MsoNormal>-done: <o:p></o:p></p>
<p class=MsoNormal> kfree(mucontext);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> return 0;<o:p></o:p></p>
<p class=MsoNormal>@@ -466,15 +450,11 @@<o:p></o:p></p>
<p class=MsoNormal> goto err_mem;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (mthca_is_livefish(to_mdev(ibdev))) <o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> err = mthca_pd_alloc(to_mdev(ibdev),
!context, pd);<o:p></o:p></p>
<p class=MsoNormal> if (err) {<o:p></o:p></p>
<p class=MsoNormal> goto err_pd_alloc;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-done:<o:p></o:p></p>
<p class=MsoNormal> if (p_umv_buf &&
p_umv_buf->command) {<o:p></o:p></p>
<p class=MsoNormal> resp.pd_handle =
(u64)(UINT_PTR)pd;<o:p></o:p></p>
<p class=MsoNormal> resp.pdn = pd->pd_num;<o:p></o:p></p>
<p class=MsoNormal>@@ -497,12 +477,7 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> int mthca_dealloc_pd(struct ib_pd *pd)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- if
(mthca_is_livefish(to_mdev(pd->device))) <o:p></o:p></p>
<p class=MsoNormal>- goto done;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> mthca_pd_free(to_mdev(pd->device),
to_mpd(pd));<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-done: <o:p></o:p></p>
<p class=MsoNormal> kfree(pd);<o:p></o:p></p>
<p class=MsoNormal> return 0;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>--- hw/mthca/user/mlnx_uvp.c Tue Apr 27
18:49:27 2010<o:p></o:p></p>
<p class=MsoNormal>+++ hw/mthca/user/mlnx_uvp.c Mon Jun 28 10:52:27
2010<o:p></o:p></p>
<p class=MsoNormal>@@ -29,7 +29,7 @@<o:p></o:p></p>
<p class=MsoNormal> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE<o:p></o:p></p>
<p class=MsoNormal> * SOFTWARE.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * $Id: mlnx_uvp.c 593 2007-02-15 07:39:49Z sleybo $<o:p></o:p></p>
<p class=MsoNormal>+ * $Id: mlnx_uvp.c 5526 2010-02-03 10:10:56Z leonid $<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #include "mt_l2w.h"<o:p></o:p></p>
<p class=MsoNormal>@@ -71,23 +71,6 @@<o:p></o:p></p>
<p class=MsoNormal> #define PCI_VENDOR_ID_TOPSPIN 0x1867<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-/* live fishes */<o:p></o:p></p>
<p class=MsoNormal>-#ifndef PCI_DEVICE_ID_MELLANOX_TAVOR_BD<o:p></o:p></p>
<p class=MsoNormal>-#define PCI_DEVICE_ID_MELLANOX_TAVOR_BD 0x5a45<o:p></o:p></p>
<p class=MsoNormal>-#endif<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-#ifndef PCI_DEVICE_ID_MELLANOX_ARBEL_BD<o:p></o:p></p>
<p class=MsoNormal>-#define PCI_DEVICE_ID_MELLANOX_ARBEL_BD 0x6279<o:p></o:p></p>
<p class=MsoNormal>-#endif<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-#ifndef PCI_DEVICE_ID_MELLANOX_SINAI_OLD_BD<o:p></o:p></p>
<p class=MsoNormal>-#define PCI_DEVICE_ID_MELLANOX_SINAI_OLD_BD 0x5e8d<o:p></o:p></p>
<p class=MsoNormal>-#endif<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-#ifndef PCI_DEVICE_ID_MELLANOX_SINAI_BD<o:p></o:p></p>
<p class=MsoNormal>-#define PCI_DEVICE_ID_MELLANOX_SINAI_BD 0x6275<o:p></o:p></p>
<p class=MsoNormal>-#endif<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #define HCA(v, d, t) \<o:p></o:p></p>
<p class=MsoNormal> { PCI_VENDOR_ID_##v, PCI_DEVICE_ID_MELLANOX_##d,
MTHCA_##t }<o:p></o:p></p>
<p class=MsoNormal>@@ -107,15 +90,6 @@<o:p></o:p></p>
<p class=MsoNormal> HCA( TOPSPIN, ARBEL,
ARBEL),<o:p></o:p></p>
<p class=MsoNormal> HCA( TOPSPIN, SINAI_OLD,
ARBEL),<o:p></o:p></p>
<p class=MsoNormal> HCA( TOPSPIN, SINAI,
ARBEL),<o:p></o:p></p>
<p class=MsoNormal>- // live fishes<o:p></o:p></p>
<p class=MsoNormal>- HCA(MELLANOX, TAVOR_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(MELLANOX, ARBEL_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(MELLANOX, SINAI_OLD_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(MELLANOX, SINAI_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(TOPSPIN, TAVOR_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(TOPSPIN, ARBEL_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(TOPSPIN, SINAI_OLD_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal>- HCA(TOPSPIN, SINAI_BD, LIVEFISH),<o:p></o:p></p>
<p class=MsoNormal> };<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static struct ibv_context_ops mthca_ctx_ops = {<o:p></o:p></p>
</div>
</body>
</html>