[ofw] ***SPAM*** [PATCH] Enable warning C4826

Fab Tillier ftillier at windows.microsoft.com
Fri Jul 11 17:31:43 PDT 2008


Warning C4826 warns you if you have signed pointer extension when a 32-bit pointer is extended to 64-bits.  This patch turns the warning on by default (for any users of complib), and fixes all instances of problematic code.  It also eradicates __ptr64 usage from the Qlogic VNIC driver.

Code affected:
- IBAL
- MTHCA
- MLX4
- QLGCVNIC

Note that I didn't change DAPL because it's licensed under the CPL and not BSD. So someone else will have to fix that.  In fact, DAPL should probably just go back into the SourceForge project rather than being duplicated everywhere.  Code in the WinOF SVN should be BSD only according to the contributor's agreement.

Lastly, this patch concludes my patch series, so once they are applied we'll be in sync.  Yay.

Signed-off-by: Fab Tillier <ftillier at microsoft.com>

diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\core\al\kernel\al_ndi_cm.c trunk\core\al\kernel\al_ndi_cm.c
--- old\core\al\kernel\al_ndi_cm.c      Wed Jul 09 09:44:26 2008
+++ trunk\core\al\kernel\al_ndi_cm.c    Fri Jul 11 13:08:00 2008
@@ -492,7 +492,7 @@ ndi_qp_init(

 AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_NDI,
        ("Creating h_qp %#I64x, uhdl %#I64x \n",
-       (uint64_t)h_qp, h_qp->obj.hdl ) );
+       (uint64_t)(ULONG_PTR)h_qp, h_qp->obj.hdl ) );

 exit:
        AL_EXIT( AL_DBG_NDI );
@@ -513,7 +513,7 @@ ndi_qp_destroy(
        {
                AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_NDI,
                        ("Destroying h_qp %#I64x, uhdl %#I64x, cid %d\n",
-                       (uint64_t)h_qp, h_qp->obj.hdl, ((al_conn_qp_t*)h_qp)->cid ) );
+                       (uint64_t)(ULONG_PTR)h_qp, h_qp->obj.hdl, ((al_conn_qp_t*)h_qp)->cid ) );

                /* Move the state before flushing, so that all new IRPs fail to queue. */
                __ndi_acquire_lock( &h_qp->p_irp_queue->csq, &irql );
@@ -526,7 +526,7 @@ ndi_qp_destroy(
                {
                        AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_NDI,
                                ("h_qp %#I64x, uhdl %#I64x, ref_cnt %d\n",
-                               (uint64_t)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );
+                               (uint64_t)(ULONG_PTR)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );

                        __ndi_complete_cancelled_irp( &h_qp->p_irp_queue->csq, Irp );
                }
@@ -535,13 +535,13 @@ ndi_qp_destroy(
                {
                        AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_NDI,
                                ("h_qp %#I64x, uhdl %#I64x, ref_cnt %d\n",
-                               (uint64_t)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );
+                               (uint64_t)(ULONG_PTR)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );

                        __ndi_complete_cancelled_irp( &h_qp->p_irp_queue->csq, Irp );
                }
                AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_NDI,
                        ("h_qp %#I64x, uhdl %#I64x, ref_cnt %d\n",
-                       (uint64_t)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );
+                       (uint64_t)(ULONG_PTR)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );
        }

        AL_EXIT( AL_DBG_NDI );
@@ -652,7 +652,7 @@ __ndi_proc_rej(

        AL_PRINT(TRACE_LEVEL_ERROR, AL_DBG_ERROR,
                ("p_rej %p, h_qp %#I64x, uhdl %#I64x, connect reject, reason=%hd\n",
-               p_rej, (uint64_t)h_qp, h_qp->obj.hdl, cl_ntoh16(p_rej->reason) ) );
+               p_rej, (uint64_t)(ULONG_PTR)h_qp, h_qp->obj.hdl, cl_ntoh16(p_rej->reason) ) );

        p_irp = IoCsqRemoveNextIrp( &h_qp->p_irp_queue->csq, NULL );
        __ndi_notify_dreq( h_qp );
@@ -1185,7 +1185,7 @@ __ndi_pr_query(
        {
                AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR,
                        ("STATUS_CONNECTION_ACTIVE: h_qp %#I64x, uhdl %#I64x, ref_cnt %d\n",
-                       (uint64_t)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );
+                       (uint64_t)(ULONG_PTR)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );
                return STATUS_CONNECTION_ACTIVE;
        }

@@ -1596,7 +1596,7 @@ __ndi_send_dreq(
        {
                AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR,
                        ("STATUS_CONNECTION_ACTIVE: h_qp %#I64x, uhdl %#I64x, ref_cnt %d\n",
-                       (uint64_t)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );
+                       (uint64_t)(ULONG_PTR)h_qp, h_qp->obj.hdl, h_qp->obj.ref_cnt ) );
                return STATUS_CONNECTION_INVALID;
        }

diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\hw\mlx4\kernel\bus\core\iobuf.c trunk\hw\mlx4\kernel\bus\core\iobuf.c
--- old\hw\mlx4\kernel\bus\core\iobuf.c Wed Jul 09 09:44:27 2008
+++ trunk\hw\mlx4\kernel\bus\core\iobuf.c       Fri Jul 11 14:36:24 2008
@@ -2,12 +2,10 @@
  * Copyright (c) 2004 Topspin Corporation.  All rights reserved.
  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
  * Copyright (c) 2005 Mellanox Technologies.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
+ * This software is available to you under the OpenIB.org BSD license
+ * below:
  *
  *     Redistribution and use in source and binary forms, with or
  *     without modification, are permitted provided that the following
@@ -399,13 +397,13 @@ int iobuf_register_with_cash(
                        }

                        // round the subregion size to the page boundary
-                       delta = (u64)(subregion_start + subregion_size) & (PAGE_SIZE - 1);
+                       delta = (ULONG_PTR)(subregion_start + subregion_size) & (PAGE_SIZE - 1);
                        subregion_size -= delta;
                        if (subregion_size > rdc)
                                subregion_size = rdc;

                        // register the subregion
-                       rc = iobuf_register( (u64)subregion_start, subregion_size, is_user, acc, &sec_iobuf);
+                       rc = iobuf_register( (ULONG_PTR)subregion_start, subregion_size, is_user, acc, &sec_iobuf);
                        if (rc)
                                goto cleanup;

@@ -426,13 +424,13 @@ int iobuf_register_with_cash(
        }

        // round the subregion size to the page boundary
-       delta = (u64)(subregion_start + subregion_size) & (PAGE_SIZE - 1);
+       delta = (ULONG_PTR)(subregion_start + subregion_size) & (PAGE_SIZE - 1);
        subregion_size -= delta;
        if (subregion_size > rdc)
                subregion_size = rdc;

        // register the subregion
-       rc = iobuf_register( (u64)subregion_start, subregion_size, is_user, acc, &sec_iobuf);
+       rc = iobuf_register( (ULONG_PTR)subregion_start, subregion_size, is_user, acc, &sec_iobuf);
        if (rc)
                goto cleanup;

diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\hw\mlx4\kernel\hca\mr.c trunk\hw\mlx4\kernel\hca\mr.c
--- old\hw\mlx4\kernel\hca\mr.c Fri Jul 11 13:07:06 2008
+++ trunk\hw\mlx4\kernel\hca\mr.c       Fri Jul 11 14:36:16 2008
@@ -84,8 +84,8 @@ mlnx_register_mr (
        }

        // register mr
-       p_ib_mr = ibv_reg_mr(p_ib_pd, (u64)(ULONG_PTR)(void*)p_mr_create->vaddr,
-               p_mr_create->length, (uint64_t)p_mr_create->vaddr,
+       p_ib_mr = ibv_reg_mr(p_ib_pd, (ULONG_PTR)p_mr_create->vaddr,
+               p_mr_create->length, (ULONG_PTR)p_mr_create->vaddr,
                to_qp_acl(p_mr_create->access_ctrl), um_call ? &umv_buf : NULL );
        if (IS_ERR(p_ib_mr)) {
                err = PTR_ERR(p_ib_mr);
diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\hw\mthca\kernel\hca_memory.c trunk\hw\mthca\kernel\hca_memory.c
--- old\hw\mthca\kernel\hca_memory.c    Fri Jul 11 13:07:06 2008
+++ trunk\hw\mthca\kernel\hca_memory.c  Fri Jul 11 14:05:05 2008
@@ -89,7 +89,7 @@ mlnx_register_mr (
        // register mr
        mr_p = ibv_reg_mr(ib_pd_p, map_qp_ibal_acl(p_mr_create->access_ctrl),
                p_mr_create->vaddr, p_mr_create->length,
-               (uint64_t)p_mr_create->vaddr, um_call, TRUE );
+               (ULONG_PTR)p_mr_create->vaddr, um_call, TRUE );
        if (IS_ERR(mr_p)) {
                err = PTR_ERR(mr_p);
                HCA_PRINT(TRACE_LEVEL_ERROR, HCA_DBG_MEMORY,
diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\hw\mthca\kernel\mt_memory.c trunk\hw\mthca\kernel\mt_memory.c
--- old\hw\mthca\kernel\mt_memory.c     Thu Jun 26 20:35:14 2008
+++ trunk\hw\mthca\kernel\mt_memory.c   Fri Jul 11 13:07:58 2008
@@ -2,6 +2,7 @@
  * Copyright (c) 2004 Topspin Corporation.  All rights reserved.
  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
  * Copyright (c) 2005 Mellanox Technologies.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
  * licenses.  You may choose to be licensed under the terms of the GNU
@@ -604,13 +605,13 @@ int iobuf_register_with_cash(
                        }

                        // round the subregion size to the page boundary
-                       delta = (u64)(subregion_start + subregion_size) & (PAGE_SIZE - 1);
+                       delta = (ULONG_PTR)(subregion_start + subregion_size) & (PAGE_SIZE - 1);
                        subregion_size -= delta;
                        if (subregion_size > rdc)
                                subregion_size = rdc;

                        // register the subregion
-                       rc = iobuf_register( (u64)subregion_start, subregion_size, is_user, acc, &sec_iobuf);
+                       rc = iobuf_register( (ULONG_PTR)subregion_start, subregion_size, is_user, acc, &sec_iobuf);
                        if (rc)
                                goto cleanup;

@@ -631,13 +632,13 @@ int iobuf_register_with_cash(
        }

        // round the subregion size to the page boundary
-       delta = (u64)(subregion_start + subregion_size) & (PAGE_SIZE - 1);
+       delta = (ULONG_PTR)(subregion_start + subregion_size) & (PAGE_SIZE - 1);
        subregion_size -= delta;
        if (subregion_size > rdc)
                subregion_size = rdc;

        // register the subregion
-       rc = iobuf_register( (u64)subregion_start, subregion_size, is_user, acc, &sec_iobuf);
+       rc = iobuf_register( (ULONG_PTR)subregion_start, subregion_size, is_user, acc, &sec_iobuf);
        if (rc)
                goto cleanup;

Only in old\hw\mthca\kernel: mthca_log.rc
diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\hw\mthca\kernel\mthca_provider.c trunk\hw\mthca\kernel\mthca_provider.c
--- old\hw\mthca\kernel\mthca_provider.c        Fri Jul 11 13:07:06 2008
+++ trunk\hw\mthca\kernel\mthca_provider.c      Fri Jul 11 13:07:58 2008
@@ -1029,9 +1029,9 @@ static struct ib_mr *mthca_reg_virt_mr(s

        // try register the buffer
        iobuf_p = &mr->iobuf;
-       iobuf_init( (u64)vaddr, length, um_call, iobuf_p);
+       iobuf_init( (ULONG_PTR)vaddr, length, um_call, iobuf_p);
        ib_acc = (acc & ~MTHCA_ACCESS_REMOTE_READ) ? IB_AC_LOCAL_WRITE : 0;
-       err =  iobuf_register_with_cash( (u64)vaddr, length, um_call,
+       err =  iobuf_register_with_cash( (ULONG_PTR)vaddr, length, um_call,
                &ib_acc, iobuf_p );
        if (err)
                goto err_reg_mem;
diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\hw\mthca\user\mlnx_uvp_qp.c trunk\hw\mthca\user\mlnx_uvp_qp.c
--- old\hw\mthca\user\mlnx_uvp_qp.c     Thu Jun 26 20:35:15 2008
+++ trunk\hw\mthca\user\mlnx_uvp_qp.c   Fri Jul 11 13:07:58 2008
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
  * licenses.  You may choose to be licensed under the terms of the GNU
@@ -282,7 +283,7 @@ int mthca_tavor_post_send(struct ibv_qp
                                ((struct mthca_tavor_ud_seg *) wqe)->lkey =
                                        cl_hton32(ah->key);
                                ((struct mthca_tavor_ud_seg *) wqe)->av_addr =
-                                       cl_hton64((uint64_t)ah->av);
+                                       cl_hton64((ULONG_PTR)ah->av);
                                ((struct mthca_tavor_ud_seg *) wqe)->dqpn = wr->dgrm.ud.remote_qp;
                                ((struct mthca_tavor_ud_seg *) wqe)->qkey = wr->dgrm.ud.remote_qkey;

diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\inc\kernel\complib\cl_types_osd.h trunk\inc\kernel\complib\cl_types_osd.h
--- old\inc\kernel\complib\cl_types_osd.h       Thu Jun 26 20:35:14 2008
+++ trunk\inc\kernel\complib\cl_types_osd.h     Fri Jul 11 13:07:58 2008
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -60,6 +61,11 @@ extern "C"
  * handlers.
  */
 #pragma warning( disable:4232 )
+
+/*
+ * Enable warnings about pointer sign extension.
+ */
+#pragma warning( default:4826 )

 /* For DECLSPEC_EXPORT and DECLSPEC_IMPORT */
 #include <ntdef.h>
diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\inc\user\complib\cl_types_osd.h trunk\inc\user\complib\cl_types_osd.h
--- old\inc\user\complib\cl_types_osd.h Thu Jun 26 20:35:14 2008
+++ trunk\inc\user\complib\cl_types_osd.h       Fri Jul 11 13:07:58 2008
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -58,6 +59,11 @@
        // Include the windows header file.
        #include <windows.h>
 #endif // !defined( _WINDOWS_ )
+
+/*
+ * Enable warnings about pointer sign extension.
+ */
+#pragma warning( default:4826 )

 #if defined( _DEBUG ) || DBG
        #define _DEBUG_
diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\ulp\qlgcvnic\kernel\vnic_adapter.c trunk\ulp\qlgcvnic\kernel\vnic_adapter.c
--- old\ulp\qlgcvnic\kernel\vnic_adapter.c      Thu Apr 24 11:29:32 2008
+++ trunk\ulp\qlgcvnic\kernel\vnic_adapter.c    Fri Jul 11 14:15:22 2008
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2007 QLogic Corporation.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -979,7 +980,7 @@ __vnic_pnp_cb(
        vnic_adapter_t                  *p_primary_adapter;
 #endif

-       vnic_adapter_t * __ptr64 p_adapter = (vnic_adapter_t * __ptr64)p_pnp_rec->pnp_context;
+       vnic_adapter_t * p_adapter = (vnic_adapter_t *)p_pnp_rec->pnp_context;

        VNIC_ENTER( VNIC_DBG_PNP );

diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\ulp\qlgcvnic\kernel\vnic_control.c trunk\ulp\qlgcvnic\kernel\vnic_control.c
--- old\ulp\qlgcvnic\kernel\vnic_control.c      Thu Apr 24 11:29:32 2008
+++ trunk\ulp\qlgcvnic\kernel\vnic_control.c    Fri Jul 11 14:31:20 2008
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2007 QLogic Corporation.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -186,12 +187,12 @@ control_init(
        pIo->wrq.p_next                 = NULL;
        pIo->wrq.wr_type                = WR_SEND;
        pIo->wrq.send_opt               = IB_SEND_OPT_SIGNALED;
-       pIo->wrq.wr_id                  = (uint64_t)(pIo);
+       pIo->wrq.wr_id                  = (ULONG_PTR)pIo;
        pIo->wrq.num_ds                 = 1;
        pIo->wrq.ds_array               = &pControl->sendIo.dsList;
        pIo->wrq.ds_array[0].length     = sizeof(Inic_ControlPacket_t);
        pIo->wrq.ds_array[0].lkey  = pControl->region.lkey;
-       pIo->wrq.ds_array[0].vaddr = (uint64_t)(pkt++);
+       pIo->wrq.ds_array[0].vaddr = (ULONG_PTR)pkt++;

        for (i = 0; i < pConfig->numRecvs; i++ )
        {
@@ -199,12 +200,12 @@ control_init(
                pIo->pViport                    = pViport;
                pIo->pRoutine                   = control_recvComplete;

-               pIo->r_wrq.wr_id                                = (uint64_t)(pIo);
+               pIo->r_wrq.wr_id                                = (ULONG_PTR)pIo;
                pIo->r_wrq.p_next                               = NULL;
                pIo->r_wrq.num_ds                               = 1;
                pIo->r_wrq.ds_array                             = &pControl->pRecvIos[i].dsList;
                pIo->r_wrq.ds_array[0].length   = sizeof(Inic_ControlPacket_t);
-               pIo->r_wrq.ds_array[0].vaddr    = (uint64_t)(pkt++);
+               pIo->r_wrq.ds_array[0].vaddr    = (ULONG_PTR)pkt++;
                pIo->r_wrq.ds_array[0].lkey             = pControl->region.lkey;

                if ( ibqp_postRecv( &pControl->qp, pIo ) != IB_SUCCESS )
diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\ulp\qlgcvnic\kernel\vnic_data.c trunk\ulp\qlgcvnic\kernel\vnic_data.c
--- old\ulp\qlgcvnic\kernel\vnic_data.c Wed Apr 30 10:31:34 2008
+++ trunk\ulp\qlgcvnic\kernel\vnic_data.c       Fri Jul 11 14:29:55 2008
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2007 QLogic Corporation.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -88,8 +89,6 @@ static void
 _data_kickTimer_stop(
                  IN    Data_t          *pData );

-#define LOCAL_IO(x) PTR64((x))
-
 #define INBOUND_COPY

 #ifdef VNIC_STATISTIC
@@ -254,7 +253,7 @@ data_connect(
        pRdmaIo->io.pRoutine         = NULL;
        pRdmaIo->io.wrq.p_next       = NULL;
        pRdmaIo->io.wrq.wr_type      = WR_RDMA_WRITE;
-       pRdmaIo->io.wrq.wr_id        = PTR64( pRdmaIo );
+       pRdmaIo->io.wrq.wr_id        = (ULONG_PTR)pRdmaIo;
        pRdmaIo->io.wrq.num_ds       = 1;
        pRdmaIo->io.wrq.ds_array     = pRdmaIo->dsList;
        pRdmaIo->dsList[0].lkey      = pData->region.lkey;
@@ -265,26 +264,26 @@ data_connect(
        pSendIo->io.pRoutine         = NULL;
        pSendIo->io.wrq.p_next       = NULL;
        pSendIo->io.wrq.wr_type      = WR_SEND;
-       pSendIo->io.wrq.wr_id        = PTR64( pSendIo );
+       pSendIo->io.wrq.wr_id        = (ULONG_PTR)pSendIo;
        pSendIo->io.wrq.num_ds       = 1;
        pSendIo->io.wrq.ds_array     = &pSendIo->dsList;

        pSendIo->io.wrq.send_opt     = IB_SEND_OPT_SIGNALED;

        pSendIo->dsList.length       = 0;
-       pSendIo->dsList.vaddr        = PTR64( pRegionData );
+       pSendIo->dsList.vaddr        = (ULONG_PTR)pRegionData;
        pSendIo->dsList.lkey         = pData->region.lkey;

        for ( i = 0; i < pData->p_conf->numRecvs; i++ )
        {
                pRecvIo[i].io.pViport         = pData->p_viport;
                pRecvIo[i].io.pRoutine        = _data_receivedKick;
-               pRecvIo[i].io.r_wrq.wr_id     = PTR64( &pRecvIo[i].io );
+               pRecvIo[i].io.r_wrq.wr_id     = (ULONG_PTR)&pRecvIo[i].io;
                pRecvIo[i].io.r_wrq.p_next    = NULL;
                pRecvIo[i].io.r_wrq.num_ds    = 1;
                pRecvIo[i].io.r_wrq.ds_array  = &pRecvIo[i].dsList;
                pRecvIo[i].dsList.length      = 4;
-               pRecvIo[i].dsList.vaddr       = PTR64( pRegionData );
+               pRecvIo[i].dsList.vaddr       = (ULONG_PTR)pRegionData;
                pRecvIo[i].dsList.lkey        = pData->region.lkey;

                InitializeListHead( &pRecvIo[i].io.listPtrs );
@@ -370,7 +369,7 @@ data_connect(
                pRdmaIo->io.pRoutine         = _data_xmitComplete;
                pRdmaIo->io.wrq.p_next       = NULL;
                pRdmaIo->io.wrq.wr_type      = WR_RDMA_WRITE;
-               pRdmaIo->io.wrq.wr_id        = PTR64(pRdmaIo);
+               pRdmaIo->io.wrq.wr_id        = (ULONG_PTR)pRdmaIo;
                pRdmaIo->io.wrq.num_ds       = MAX_NUM_SGE; // will set actual number when transmit
                pRdmaIo->io.wrq.ds_array     = pRdmaIo->dsList;
                pRdmaIo->p_trailer                      =  (ViportTrailer_t *)&pRdmaIo->data[0];
@@ -381,7 +380,7 @@ data_connect(
        }

        pXmitPool->rdmaRKey      = pData->region.rkey;
-       pXmitPool->rdmaAddr      = PTR64( pXmitPool->bufPool );
+       pXmitPool->rdmaAddr      = (ULONG_PTR)pXmitPool->bufPool;

        data_postRecvs( pData );

@@ -1184,7 +1183,7 @@ _data_addFreeBuffer(
        pBpe = &p_recvPool->bufPool[index];

        pBpe->rKey       = pRdmaDest->region.rkey;
-       pBpe->remoteAddr = hton64( PTR64( pRdmaDest->data ) );
+       pBpe->remoteAddr = hton64( (ULONG_PTR)pRdmaDest->data );
        pBpe->valid      = (uint32_t)(pRdmaDest - &p_recvPool->pRecvBufs[0]) + 1;
        ++p_recvPool->numFreeBufs;

@@ -1338,7 +1337,7 @@ _data_sendFreeRecvBuffers(
                rdmaAddr = p_recvPool->eiocRdmaAddr + offset;

                pWrq->ds_array->length  = sz;
-               pWrq->ds_array->vaddr = PTR64((uint8_t *)p_recvPool->bufPool + offset);
+               pWrq->ds_array->vaddr = (ULONG_PTR)((uint8_t *)p_recvPool->bufPool + offset);
                pWrq->remote_ops.vaddr = rdmaAddr;

                if ( ibqp_postSend( &pData->qp, &pData->freeBufsIo.io ) != IB_SUCCESS )
diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\ulp\qlgcvnic\kernel\vnic_ib.c trunk\ulp\qlgcvnic\kernel\vnic_ib.c
--- old\ulp\qlgcvnic\kernel\vnic_ib.c   Mon Apr 28 12:15:17 2008
+++ trunk\ulp\qlgcvnic\kernel\vnic_ib.c Fri Jul 11 14:30:20 2008
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2007 QLogic Corporation.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -144,7 +145,7 @@ ibregion_init (
        IN              viport_t                *p_viport,
        IN      OUT     IbRegion_t              *pRegion,
        IN              ib_pd_handle_t  hPd,
-       IN              void* __ptr64   vaddr,
+       IN              void*                   vaddr,
        IN              uint64_t                len,
        IN              ib_access_t             access_ctrl )
 {
@@ -172,7 +173,7 @@ ibregion_init (
        else
        {
                pRegion->len = len;
-               pRegion->virtAddress = (uint64_t)( vaddr );
+               pRegion->virtAddress = (ULONG_PTR)vaddr;
        }
        VNIC_EXIT ( VNIC_DBG_IB );
        return ib_status;
@@ -418,7 +419,7 @@ static void
 _ibqp_detach_cb(
                IN              ib_cm_drep_rec_t        *p_drep_rec )
 {
-       IbQp_t  *pQp = (IbQp_t * __ptr64 )p_drep_rec->qp_context;
+       IbQp_t  *pQp = (IbQp_t *)p_drep_rec->qp_context;
        VNIC_ENTER( VNIC_DBG_IB );
        CL_ASSERT( p_drep_rec );

@@ -432,7 +433,7 @@ static void
 _ibqp_rej_cb(
         IN             ib_cm_rej_rec_t         *p_rej_rec )
 {
-       IbQp_t  *pQp = (IbQp_t * __ptr64 )p_rej_rec->qp_context;
+       IbQp_t  *pQp = (IbQp_t *)p_rej_rec->qp_context;
        CL_ASSERT(p_rej_rec );

        InterlockedExchange( &pQp->qpState, IB_DETACHED );
@@ -471,7 +472,7 @@ _ibqp_dreq_cb(
 {
        ib_api_status_t ib_status = IB_SUCCESS;
        ib_cm_drep_t    cm_drep;
-       IbQp_t  *pQp    = (IbQp_t * __ptr64 )p_dreq_rec->qp_context;
+       IbQp_t  *pQp    = (IbQp_t *)p_dreq_rec->qp_context;

        VNIC_ENTER( VNIC_DBG_IB );
        CL_ASSERT( p_dreq_rec );
@@ -699,7 +700,7 @@ _ibqp_connect_cb(

        VNIC_ENTER( VNIC_DBG_IB );

-       pQp = (IbQp_t * __ptr64 )p_cm_rep->qp_context;
+       pQp = (IbQp_t *)p_cm_rep->qp_context;
        p_viport = pQp->pViport;

        ASSERT( pQp->qpState == IB_ATTACHING );
@@ -870,7 +871,7 @@ ib_asyncEvent(
                switch ( pEventRecord->code )
                {
                        case IB_AE_PORT_DOWN:
-                               p_adapter = ( vnic_adapter_t * __ptr64)pEventRecord->context;
+                               p_adapter = (vnic_adapter_t *)pEventRecord->context;

                                if( p_adapter &&
                                        p_adapter->p_currentPath->pViport &&
@@ -889,7 +890,7 @@ ib_asyncEvent(
                        case IB_AE_WQ_REQ_ERROR:
                        case IB_AE_WQ_ACCESS_ERROR:

-                                       p_viport = ((IbQp_t * __ptr64 )pEventRecord->context)->pViport;
+                                       p_viport = ((IbQp_t *)pEventRecord->context)->pViport;

                                        if( p_viport && !p_viport->errored )
                                        {
diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\ulp\qlgcvnic\kernel\vnic_ib.h trunk\ulp\qlgcvnic\kernel\vnic_ib.h
--- old\ulp\qlgcvnic\kernel\vnic_ib.h   Thu Apr 24 11:29:32 2008
+++ trunk\ulp\qlgcvnic\kernel\vnic_ib.h Fri Jul 11 14:42:50 2008
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2007 QLogic Corporation.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -219,7 +220,7 @@ ibregion_init(
        IN              struct _viport          *p_viport,
        OUT             IbRegion_t                      *pRegion,
        IN              ib_pd_handle_t          hPd,
-       IN              void* __ptr64           vaddr,
+       IN              void*                           vaddr,
        IN              uint64_t                        len,
        IN              ib_access_t                     access_ctrl );

diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: old\ulp\qlgcvnic\kernel\vnic_util.h trunk\ulp\qlgcvnic\kernel\vnic_util.h
--- old\ulp\qlgcvnic\kernel\vnic_util.h Thu Apr 24 11:29:32 2008
+++ trunk\ulp\qlgcvnic\kernel\vnic_util.h       Fri Jul 11 14:43:11 2008
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2007 QLogic Corporation.  All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -36,8 +37,6 @@

 #define MAXU32 MAXULONG
 #define MAXU64 ((uint64_t)(~0))
-
-#define PTR64(what) ((uint64_t)(void * __ptr64)(what))

 #ifndef min
 #define min(a,b) ((a)<(b)?(a):(b))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: C4826.patch
Type: application/octet-stream
Size: 22457 bytes
Desc: C4826.patch
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20080711/baa03c0e/attachment.obj>


More information about the ofw mailing list