[VNIC] fixed x64 platform failure for parameters read. Wrong handler was used for...
authoraestrin <aestrin@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 1 Nov 2006 19:45:01 +0000 (19:45 +0000)
committeraestrin <aestrin@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 1 Nov 2006 19:45:01 +0000 (19:45 +0000)
Set dereg_pnp sync.

git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@535 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

ulp/inic/kernel/vnic_adapter.c
ulp/inic/kernel/vnic_adapter.h
ulp/inic/kernel/vnic_driver.c

index 87d98dc..8dc77b7 100644 (file)
@@ -87,6 +87,7 @@ _vnic_viport_free(
 ib_api_status_t\r
 vnic_create_adapter(\r
        IN              NDIS_HANDLE                     h_handle,\r
+       IN              NDIS_HANDLE                     wrapper_config_context,\r
        OUT             vnic_adapter_t**        const pp_adapter)\r
 {\r
        NDIS_STATUS                     status;\r
@@ -108,7 +109,7 @@ vnic_create_adapter(
 \r
        NdisAllocateSpinLock( &p_adapter->lock );\r
 \r
-       status = vnic_get_adapter_params( h_handle, &p_adapter->params );\r
+       status = vnic_get_adapter_params( wrapper_config_context, &p_adapter->params );\r
 \r
        if ( status != NDIS_STATUS_SUCCESS )\r
        {\r
@@ -179,7 +180,7 @@ vnic_destroy_adapter(
        if( p_adapter->h_pnp )\r
        {\r
                ib_status =\r
-                       p_adapter->ifc.dereg_pnp( p_adapter->h_pnp, NULL );\r
+                       p_adapter->ifc.dereg_pnp( p_adapter->h_pnp, ib_sync_destroy );\r
        }\r
 \r
        vnic_viport_cleanup( p_adapter );\r
@@ -401,13 +402,13 @@ _vnic_params_sanity_check(vnic_params_t *p_params)
 }\r
 NDIS_STATUS\r
 vnic_get_adapter_params(\r
-       IN                      NDIS_HANDLE                             h_handle,\r
+       IN                      NDIS_HANDLE                             wrapper_config_context,\r
        OUT                     vnic_params_t* const    p_params )\r
 {\r
        NDIS_STATUS                                             status;\r
        NDIS_HANDLE                                             h_config;\r
        NDIS_CONFIGURATION_PARAMETER    *p_reg_prm;\r
-       //NDIS_STRING                                           keyword;\r
+       NDIS_STRING                                             keyword;\r
 \r
        VNIC_ENTER( VNIC_DBG_ADAPTER );\r
 \r
@@ -416,7 +417,7 @@ vnic_get_adapter_params(
        /* prepare params for default initialization */\r
        cl_memset( p_params, 0xff, sizeof (vnic_params_t) );\r
 \r
-       NdisOpenConfiguration( &status, &h_config, h_handle );\r
+       NdisOpenConfiguration( &status, &h_config, wrapper_config_context );\r
        if( status != NDIS_STATUS_SUCCESS )\r
        {\r
                VNIC_TRACE_EXIT( VNIC_DBG_ERROR,\r
@@ -427,136 +428,136 @@ vnic_get_adapter_params(
        status = NDIS_STATUS_FAILURE;\r
        p_reg_prm = NULL;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"DebugFlags" );\r
+       RtlInitUnicodeString( &keyword, L"DebugFlags" );\r
 \r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
-       //if( status == NDIS_STATUS_SUCCESS )\r
-       //              g_vnic_dbg_lvl = p_reg_prm->ParameterData.IntegerData;\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       if( status == NDIS_STATUS_SUCCESS )\r
+                       g_vnic_dbg_lvl = p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MinMtu" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MinMtu" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MinMtu = ( status != NDIS_STATUS_SUCCESS ) ? MIN_MTU:\r
                                                p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MaxMtu" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MaxMtu" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MaxMtu =( status != NDIS_STATUS_SUCCESS )? MAX_MTU:\r
                                                p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"UseRxCsum" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"UseRxCsum" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->UseRxCsum = ( status != NDIS_STATUS_SUCCESS ) ?\r
                TRUE : ( p_reg_prm->ParameterData.IntegerData )? TRUE : FALSE;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"UseTxCsum" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"UseTxCsum" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        /* turn it on by default, if not present */\r
        p_params->UseTxCsum = ( status != NDIS_STATUS_SUCCESS ) ?\r
                TRUE : ( p_reg_prm->ParameterData.IntegerData )? TRUE : FALSE;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MinEiocUpdateSz" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MinEiocUpdateSz" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MinEiocUpdateSz = ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MIN_EIOC_UPDATE_SZ : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MaxEiocUpdateSz" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MaxEiocUpdateSz" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MaxEiocUpdateSz = ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MAX_EIOC_UPDATE_SZ : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MinHostUpdateSz" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MinHostUpdateSz" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MinHostUpdateSz = ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MIN_HOST_UPDATE_SZ : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MaxHostUpdateSz" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MaxHostUpdateSz" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MaxHostUpdateSz = ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MAX_HOST_UPDATE_SZ : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MinHostKickBytes" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MinHostKickBytes" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MinHostKickBytes = ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MIN_HOST_KICK_BYTES : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MaxHostKickBytes" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MaxHostKickBytes" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MaxHostKickBytes = ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MAX_HOST_KICK_BYTES : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MinHostKickEntries" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MinHostKickEntries" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MinHostKickEntries =  ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MIN_HOST_KICK_ENTRIES : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MaxHostKickEntries" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MaxHostKickEntries" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MaxHostKickEntries =  ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MAX_HOST_KICK_ENTRIES : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MinHostKickTimeout" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MinHostKickTimeout" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MinHostKickTimeout =  ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MIN_HOST_KICK_TIMEOUT : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MaxHostKickTimeout" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MaxHostKickTimeout" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MaxHostKickTimeout =  ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MAX_HOST_KICK_TIMEOUT : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MinEiocPoolSz" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MinEiocPoolSz" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MinEiocPoolSz =  ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MIN_EIOC_POOL_SZ : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MaxEiocPoolSz" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MaxEiocPoolSz" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MaxEiocPoolSz =  ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MAX_EIOC_POOL_SZ : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"MinHostPoolSz" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"MinHostPoolSz" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->MinHostPoolSz =  ( status != NDIS_STATUS_SUCCESS ) ?\r
                        MIN_HOST_POOL_SZ : p_reg_prm->ParameterData.IntegerData;\r
 \r
-       //RtlInitUnicodeString( &keyword, L"HostRecvPoolEntries" );\r
-       //NdisReadConfiguration(\r
-       //      &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
+       RtlInitUnicodeString( &keyword, L"HostRecvPoolEntries" );\r
+       NdisReadConfiguration(\r
+               &status, &p_reg_prm, h_config, &keyword, NdisParameterInteger );\r
 \r
        p_params->HostRecvPoolEntries =  ( status != NDIS_STATUS_SUCCESS ) ?\r
                        HOST_RECV_POOL_ENTRIES : p_reg_prm->ParameterData.IntegerData;\r
index 16b1379..09068dd 100644 (file)
@@ -168,6 +168,7 @@ typedef struct _vnic_adapter {
 ib_api_status_t\r
 vnic_create_adapter(\r
        IN              NDIS_HANDLE                     h_handle,\r
+       IN              NDIS_HANDLE                     wrapper_config_context,\r
        OUT             vnic_adapter_t**        const pp_adapter);\r
 \r
 void\r
index 8ea0aad..6b29df4 100644 (file)
@@ -216,7 +216,6 @@ vnic_initialize(
 #endif\r
 \r
        UNUSED_PARAM( p_open_status );\r
-       UNUSED_PARAM( wrapper_config_context );\r
 \r
        /* Search for our medium */\r
        for( medium_index = 0; medium_index < medium_array_size; ++medium_index )\r
@@ -235,7 +234,7 @@ vnic_initialize(
        *p_selected_medium_index = medium_index;\r
 \r
                /* Create the adapter */\r
-       ib_status = vnic_create_adapter( h_handle, &p_adapter );\r
+       ib_status = vnic_create_adapter( h_handle, wrapper_config_context, &p_adapter );\r
        if( ib_status != IB_SUCCESS )\r
        {\r
                VNIC_TRACE_EXIT( VNIC_DBG_ERROR,\r