<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 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 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;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@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"><span style="color:#1F497D">Thanks Leonid, I’ll apply these to branches\mlx4_full so they do not get lost in a future merge.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Stan.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Leonid Keller [mailto:leonid@mellanox.com]
<br>
<b>Sent:</b> Tuesday, December 13, 2011 1:27 AM<br>
<b>To:</b> Smith, Stan<br>
<b>Cc:</b> ofw_list<br>
<b>Subject:</b> prefast-caused patches<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi Stan,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We’ve checked our version of WinOF stack with Prefast and made some changes on base of its warnings.<o:p></o:p></p>
<p class="MsoNormal">I’m not sure they can be automatically put on the WinOfed tree, but may be you’ll find some of them interesting and important and worth to be taken.<o:p></o:p></p>
<p class="MsoNormal">For example, one for libibverbs/src/device.cpp (see below).<o:p></o:p></p>
<p class="MsoNormal">It’s just a bug, albeit a minor one.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/winmad/kernel/wm_reg.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/winmad/kernel/wm_reg.c                (revision 9121)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/winmad/kernel/wm_reg.c             (revision 9122)<o:p></o:p></p>
<p class="MsoNormal">@@ -125,6 +125,7 @@<o:p></o:p></p>
<p class="MsoNormal">                ib_status = dev->IbInterface.open_ca(pRegistration->hIbal, pAttributes->Guid,<o:p></o:p></p>
<p class="MsoNormal">                                                                                                                                                                 NULL, NULL, &pRegistration->hCa);<o:p></o:p></p>
<p class="MsoNormal">                if (ib_status != IB_SUCCESS) {<o:p></o:p></p>
<p class="MsoNormal">+        status = STATUS_UNSUCCESSFUL;<o:p></o:p></p>
<p class="MsoNormal">                                goto err2;<o:p></o:p></p>
<p class="MsoNormal">                }<o:p></o:p></p>
<p class="MsoNormal">                DbgPrintEx(DPFLTR_IHVNETWORK_ID, DPFLTR_ERROR_LEVEL,"REF_CNT_DBG: WM open_ca %p\n", pRegistration->hCa);<o:p></o:p></p>
<p class="MsoNormal">@@ -132,6 +133,7 @@<o:p></o:p></p>
<p class="MsoNormal">                ib_status = dev->IbInterface.alloc_pd(pRegistration->hCa, IB_PDT_ALIAS,<o:p></o:p></p>
<p class="MsoNormal">                                                                                                                                                                  NULL, &pRegistration->hPd);<o:p></o:p></p>
<p class="MsoNormal">                if (ib_status != IB_SUCCESS) {<o:p></o:p></p>
<p class="MsoNormal">+        status = STATUS_UNSUCCESSFUL;<o:p></o:p></p>
<p class="MsoNormal">                                goto err3;<o:p></o:p></p>
<p class="MsoNormal">                }<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/winverbs/kernel/wv_pd.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/winverbs/kernel/wv_pd.c (revision 9121)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/winverbs/kernel/wv_pd.c              (revision 9122)<o:p></o:p></p>
<p class="MsoNormal">@@ -421,6 +421,7 @@<o:p></o:p></p>
<p class="MsoNormal">                                goto err1;<o:p></o:p></p>
<p class="MsoNormal">                }<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">+    #pragma prefast(suppress:28197, "The memory is freed on WvMwDeallocate function");<o:p></o:p></p>
<p class="MsoNormal">                mw = ExAllocatePoolWithTag(PagedPool, sizeof(WV_MEMORY_WINDOW), 'wmvw');<o:p></o:p></p>
<p class="MsoNormal">                if (mw == NULL) {<o:p></o:p></p>
<p class="MsoNormal">                                status = STATUS_NO_MEMORY;<o:p></o:p></p>
<p class="MsoNormal">@@ -550,7 +551,7 @@<o:p></o:p></p>
<p class="MsoNormal">                                goto err1;<o:p></o:p></p>
<p class="MsoNormal">                }<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">-              #pragma prefast(suppress:18197, "The memory is freed on WvAhFree function");<o:p></o:p></p>
<p class="MsoNormal">+             #pragma prefast(suppress:28197, "The memory is freed on WvAhFree function");<o:p></o:p></p>
<p class="MsoNormal">                ah = ExAllocatePoolWithTag(PagedPool, sizeof(WV_ADDRESS_HANDLE), 'havw');<o:p></o:p></p>
<p class="MsoNormal">                if (ah == NULL) {<o:p></o:p></p>
<p class="MsoNormal">                                status = STATUS_NO_MEMORY;<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/kernel/al_cm.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/kernel/al_cm.c  (revision 9121)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/kernel/al_cm.c               (revision 9122)<o:p></o:p></p>
<p class="MsoNormal">@@ -48,6 +48,7 @@<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal">                iba_cm_id_priv *id;<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">+    #pragma prefast(suppress: 6014, "The allocated memory is freed in function cm_free_id.");<o:p></o:p></p>
<p class="MsoNormal">                id = ExAllocatePoolWithTag(NonPagedPool, sizeof(iba_cm_id_priv), 'mcbi');<o:p></o:p></p>
<p class="MsoNormal">                if (id == NULL) {<o:p></o:p></p>
<p class="MsoNormal">                                return NULL;<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/cmd.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/cmd.c                (revision 9121)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/cmd.c             (revision 9122)<o:p></o:p></p>
<p class="MsoNormal">@@ -425,7 +425,7 @@<o:p></o:p></p>
<p class="MsoNormal">     vhcr->err = 0;<o:p></o:p></p>
<p class="MsoNormal">     ret = mlx4_comm_cmd(dev, MLX4_COMM_CMD_VHCR_POST, 0, MLX4_COMM_TIME + timeout);<o:p></o:p></p>
<p class="MsoNormal">     if (!ret) {<o:p></o:p></p>
<p class="MsoNormal">-        if (out_is_imm)<o:p></o:p></p>
<p class="MsoNormal">+        if (out_is_imm && out_param != NULL)<o:p></o:p></p>
<p class="MsoNormal">             *out_param = vhcr->out_param;<o:p></o:p></p>
<p class="MsoNormal">         ret = vhcr->err;<o:p></o:p></p>
<p class="MsoNormal">     }<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/eq.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/eq.c   (revision 9121)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/eq.c                (revision 9122)<o:p></o:p></p>
<p class="MsoNormal">@@ -572,7 +572,7 @@<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">                                case MLX4_EVENT_TYPE_PPF_REMOVE:<o:p></o:p></p>
<p class="MsoNormal">                                                if (mlx4_is_slave(dev)) {<o:p></o:p></p>
<p class="MsoNormal">-                                                              int i = 0;<o:p></o:p></p>
<p class="MsoNormal">+                i = 0;<o:p></o:p></p>
<p class="MsoNormal">                                                                if (dev->pdev->ib_dev) {
<o:p></o:p></p>
<p class="MsoNormal">                                                                                dev->flags |= MLX4_FLAG_RESET_4_RMV;         // bar the device<o:p></o:p></p>
<p class="MsoNormal">                                                                                i = mlx4_dispatch_reset_event(dev->pdev->ib_dev, IB_EVENT_RESET_4_RMV);<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/mr.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/mr.c   (revision 9121)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/mr.c                (revision 9122)<o:p></o:p></p>
<p class="MsoNormal">@@ -789,7 +789,7 @@<o:p></o:p></p>
<p class="MsoNormal">                                return -EINVAL;<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">                /* Trust the user not to pass misaligned data in page_list */<o:p></o:p></p>
<p class="MsoNormal">-              if (!fmr) /* instead of 0, that is warned by compiler */<o:p></o:p></p>
<p class="MsoNormal">+             if (fmr == NULL) /* instead of 0, that is warned by compiler */<o:p></o:p></p>
<p class="MsoNormal">                                for (i = 0; i < npages; ++i) {<o:p></o:p></p>
<p class="MsoNormal">                                                if (page_list[i] & ~page_mask)<o:p></o:p></p>
<p class="MsoNormal">                                                                return -EINVAL;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/ulp/libibverbs/src/device.cpp<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/ulp/libibverbs/src/device.cpp     (revision 9349)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/ulp/libibverbs/src/device.cpp  (revision 9350)<o:p></o:p></p>
<p class="MsoNormal">@@ -184,12 +184,13 @@<o:p></o:p></p>
<p class="MsoNormal">                if (num != NULL) {<o:p></o:p></p>
<p class="MsoNormal">                                *num = (int) size;<o:p></o:p></p>
<p class="MsoNormal">                }<o:p></o:p></p>
<p class="MsoNormal">+        delete [] guid;<o:p></o:p></p>
<p class="MsoNormal">                return pdev_array;<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"> err3:<o:p></o:p></p>
<p class="MsoNormal">                ibv_free_device_list(pdev_array);<o:p></o:p></p>
<p class="MsoNormal"> err2:<o:p></o:p></p>
<p class="MsoNormal">-              delete guid;<o:p></o:p></p>
<p class="MsoNormal">+             delete [] guid;<o:p></o:p></p>
<p class="MsoNormal"> err1:<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">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/tests/cmtest/user/cmtest_main.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/tests/cmtest/user/cmtest_main.c            (revision 9349)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/tests/cmtest/user/cmtest_main.c         (revision 9350)<o:p></o:p></p>
<p class="MsoNormal">@@ -994,7 +994,7 @@<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal">                uint64_t                               start_time, total_time;<o:p></o:p></p>
<p class="MsoNormal">                int32_t                                  i;<o:p></o:p></p>
<p class="MsoNormal">-              ib_api_status_t                status;<o:p></o:p></p>
<p class="MsoNormal">+             ib_api_status_t                status = IB_SUCCESS;<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">                printf( "Creating QPs...\n" );<o:p></o:p></p>
<p class="MsoNormal">                start_time = cl_get_time_stamp();<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/winverbs/kernel/wv_ep.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/winverbs/kernel/wv_ep.c (revision 9349)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/winverbs/kernel/wv_ep.c              (revision 9350)<o:p></o:p></p>
<p class="MsoNormal">@@ -479,6 +479,7 @@<o:p></o:p></p>
<p class="MsoNormal">                                WDF_REQUEST_PARAMETERS_INIT(&param);<o:p></o:p></p>
<p class="MsoNormal">                                WdfRequestGetParameters(request, &param);<o:p></o:p></p>
<p class="MsoNormal">                                if (param.Parameters.DeviceIoControl.IoControlCode == WV_IOCTL_EP_DISCONNECT) {<o:p></o:p></p>
<p class="MsoNormal">+            ASSERT(pEndpoint->pWork != NULL);<o:p></o:p></p>
<p class="MsoNormal">                                                WdfRequestSetInformation(request, DiscStatus);<o:p></o:p></p>
<p class="MsoNormal">                                                WvProviderGet(pEndpoint->pProvider);<o:p></o:p></p>
<p class="MsoNormal">                                                WorkQueueInsert(&pEndpoint->pProvider->WorkQueue, &pEndpoint->pWork->Work);<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_srq.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_srq.c (revision 9349)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_srq.c              (revision 9350)<o:p></o:p></p>
<p class="MsoNormal">@@ -214,8 +214,9 @@<o:p></o:p></p>
<p class="MsoNormal">                IN           OUT                                       ci_umv_buf_t* const                                     p_umv_buf )<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">-<o:p></o:p></p>
<p class="MsoNormal">+    <o:p></o:p></p>
<p class="MsoNormal">                AL_ENTER( AL_DBG_SRQ );<o:p></o:p></p>
<p class="MsoNormal">+             ASSERT(h_srq != NULL);<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">                if( AL_OBJ_INVALID_HANDLE( h_srq, AL_OBJ_TYPE_H_SRQ ) )<o:p></o:p></p>
<p class="MsoNormal">                {<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_mgr_shared.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_mgr_shared.c               (revision 9349)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_mgr_shared.c            (revision 9350)<o:p></o:p></p>
<p class="MsoNormal">@@ -310,6 +310,7 @@<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">                                /* Try to match the GID with one of the port's GIDs. */<o:p></o:p></p>
<p class="MsoNormal">+        ASSERT(p_ca_attr != NULL);<o:p></o:p></p>
<p class="MsoNormal">                                status = IB_NOT_FOUND;<o:p></o:p></p>
<p class="MsoNormal">                                for( port_ind = 0; port_ind < p_ca_attr->num_ports; port_ind++ )<o:p></o:p></p>
<p class="MsoNormal">                                {<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/catas.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/catas.c              (revision 9349)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/catas.c           (revision 9350)<o:p></o:p></p>
<p class="MsoNormal">@@ -139,7 +139,7 @@<o:p></o:p></p>
<p class="MsoNormal">                IN                                                           PVOID                                                                                   context)<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">+    ASSERT(context != NULL);<o:p></o:p></p>
<p class="MsoNormal">                struct mlx4_dev * dev = (struct mlx4_dev *) context;<o:p></o:p></p>
<p class="MsoNormal">                UNUSED_PARAM(p_dev_obj);<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">@@ -404,6 +404,7 @@<o:p></o:p></p>
<p class="MsoNormal">                IN                                                           PDEVICE_OBJECT                                                             p_dev_obj,<o:p></o:p></p>
<p class="MsoNormal">     IN                                                      PVOID                                                                                   context)<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal">+    ASSERT(context != NULL);<o:p></o:p></p>
<p class="MsoNormal">                struct ib_event_handler *           event_handler = (struct ib_event_handler *) context;<o:p></o:p></p>
<p class="MsoNormal">                struct ib_device *ibdev = event_handler->device;<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/core/cache.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/core/cache.c           (revision 9349)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/core/cache.c        (revision 9350)<o:p></o:p></p>
<p class="MsoNormal">@@ -334,7 +334,8 @@<o:p></o:p></p>
<p class="MsoNormal">                IN PDEVICE_OBJECT  DeviceObject,<o:p></o:p></p>
<p class="MsoNormal">                IN PVOID  Context <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">+    ASSERT(Context != NULL);<o:p></o:p></p>
<p class="MsoNormal">                struct ib_update_work *work = (struct ib_update_work *)Context;<o:p></o:p></p>
<p class="MsoNormal">                UNREFERENCED_PARAMETER(DeviceObject);<o:p></o:p></p>
<p class="MsoNormal">                ib_cache_task(Context);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Index: mr.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- mr.c (revision 9350)<o:p></o:p></p>
<p class="MsoNormal">+++ mr.c              (revision 9351)<o:p></o:p></p>
<p class="MsoNormal">@@ -779,6 +779,8 @@<o:p></o:p></p>
<p class="MsoNormal"> {             int i, page_mask;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> +    ASSERT(fmr != NULL);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                if (npages > fmr->max_pages)<o:p></o:p></p>
<p class="MsoNormal">                                return -EINVAL;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">@@ -788,13 +790,6 @@<o:p></o:p></p>
<p class="MsoNormal">                if (iova & page_mask)<o:p></o:p></p>
<p class="MsoNormal">                                return -EINVAL;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> -             /* Trust the user not to pass misaligned data in page_list */<o:p></o:p></p>
<p class="MsoNormal"> -             if (fmr == NULL) /* instead of 0, that is warned by compiler */<o:p></o:p></p>
<p class="MsoNormal"> -                             for (i = 0; i < npages; ++i) {<o:p></o:p></p>
<p class="MsoNormal"> -                                             if (page_list[i] & ~page_mask)-                                                 return -EINVAL;<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 (fmr->maps >= fmr->max_maps)<o:p></o:p></p>
<p class="MsoNormal">                                return -EINVAL;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_srq.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_srq.c (revision 9352)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_srq.c              (revision 9353)<o:p></o:p></p>
<p class="MsoNormal">@@ -216,7 +216,7 @@<o:p></o:p></p>
<p class="MsoNormal">                ib_api_status_t                                                status;<o:p></o:p></p>
<p class="MsoNormal">     <o:p></o:p></p>
<p class="MsoNormal">                AL_ENTER( AL_DBG_SRQ );<o:p></o:p></p>
<p class="MsoNormal">-              ASSERT(h_srq != NULL);<o:p></o:p></p>
<p class="MsoNormal">+             CL_ASSERT(h_srq != NULL);<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">                if( AL_OBJ_INVALID_HANDLE( h_srq, AL_OBJ_TYPE_H_SRQ ) )<o:p></o:p></p>
<p class="MsoNormal">                {<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_mgr_shared.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_mgr_shared.c               (revision 9352)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/core/al/al_mgr_shared.c            (revision 9353)<o:p></o:p></p>
<p class="MsoNormal">@@ -310,7 +310,7 @@<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">                                /* Try to match the GID with one of the port's GIDs. */<o:p></o:p></p>
<p class="MsoNormal">-        ASSERT(p_ca_attr != NULL);<o:p></o:p></p>
<p class="MsoNormal">+        CL_ASSERT(p_ca_attr != NULL);<o:p></o:p></p>
<p class="MsoNormal">                                status = IB_NOT_FOUND;<o:p></o:p></p>
<p class="MsoNormal">                                for( port_ind = 0; port_ind < p_ca_attr->num_ports; port_ind++ )<o:p></o:p></p>
<p class="MsoNormal">                                {<o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/etc/user/gtod.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/etc/user/gtod.c (revision 9352)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/etc/user/gtod.c              (revision 9353)<o:p></o:p></p>
<p class="MsoNormal">@@ -42,8 +42,10 @@<o:p></o:p></p>
<p class="MsoNormal">                LONGLONG ll;<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">                if(!pft || !ptv) {<o:p></o:p></p>
<p class="MsoNormal">-                              ptv->tv_sec = 0;<o:p></o:p></p>
<p class="MsoNormal">-                              ptv->tv_usec = 0;<o:p></o:p></p>
<p class="MsoNormal">+        if(!ptv){<o:p></o:p></p>
<p class="MsoNormal">+                                 ptv->tv_sec = 0;<o:p></o:p></p>
<p class="MsoNormal">+                                 ptv->tv_usec = 0;<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"> <o:p></o:p></p>
<p class="MsoNormal">Index: B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/mr.c<o:p></o:p></p>
<p class="MsoNormal">===================================================================<o:p></o:p></p>
<p class="MsoNormal">--- B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/mr.c   (revision 9352)<o:p></o:p></p>
<p class="MsoNormal">+++ B:/users/leonid/svn/winib/branches/MLNX_WinOF-3_0_0/hw/mlx4/kernel/bus/net/mr.c                (revision 9353)<o:p></o:p></p>
<p class="MsoNormal">@@ -774,10 +774,10 @@<o:p></o:p></p>
<p class="MsoNormal">                                mlx4_bitmap_cleanup(&mr_table->mpt_bitmap);
<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 mlx4_check_fmr(struct mlx4_fmr *fmr, u64 *page_list,<o:p></o:p></p>
<p class="MsoNormal">                +static inline int mlx4_check_fmr(struct mlx4_fmr *fmr,
<o:p></o:p></p>
<p class="MsoNormal">                                int npages, u64 iova) {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                -              int i, page_mask;<o:p></o:p></p>
<p class="MsoNormal">                +             int page_mask; <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                ASSERT(fmr != NULL); <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                @@ -803,7 +803,7 @@<o:p></o:p></p>
<p class="MsoNormal">                u32 key;               int i, err; <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                -              err = mlx4_check_fmr(fmr, page_list, npages, iova);<o:p></o:p></p>
<p class="MsoNormal">                +             err = mlx4_check_fmr(fmr, npages, iova);<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">                                return err; <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                @@ -849,7 +849,7 @@<o:p></o:p></p>
<p class="MsoNormal">                u32 key;               int i, err; <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                -              err = mlx4_check_fmr(fmr, page_list, npages, iova);<o:p></o:p></p>
<p class="MsoNormal">                +             err = mlx4_check_fmr(fmr, npages, iova);<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">                                                return err;<o:p></o:p></p>
</div>
</div>
</body>
</html>