<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>