<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(¶m);<o:p></o:p></p>
<p class="MsoNormal"> WdfRequestGetParameters(request, ¶m);<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>