[ofw] RE: patches for depreciated ExAllocatePool() calls

Smith, Stan stan.smith at intel.com
Mon Dec 17 09:03:04 PST 2007


Tzachi Dar wrote:
> Seems fine by me.
> By the way which compiler are you using?

Thanks for the review.

WSDK for Windows Server 2008 RC0 - WinDDK 6001.17051
Not ready for prime-time yet....cl encounters internal compiler error on
x86 build of ibal   :-(
Otherwise OK compile for x64 & ia64 sans squawking about using
USE_CRTDLL=1 in SOURCES instead of USE_MSVCRT=1.

Stan.

> 
> Thanks
> Tzachi
> 
>> -----Original Message-----
>> From: Smith, Stan [mailto:stan.smith at intel.com]
>> Sent: Friday, December 14, 2007 6:55 PM
>> To: Tzachi Dar
>> Cc: ofw at lists.openfabrics.org
>> Subject: patches for depreciated ExAllocatePool() calls
>> 
>> Hello,
>>   Would you kindly take a look at the proposed patches which replace
>> ExAllocatePool() calls with ExAllocatePoolWithTag() calls.
>> The Windows Server 2008 compiler complains loudly about the
>> depreciated call ExAllocatePool(). Tags are loosely based on
>> the function name.
>> Attempting to reduce compilation noise in order to clearly
>> see the 'real' issues.
>> 
>> Formatting in the patch file is not expanding tabs correctly,
>> although when the file is patched and viewed from Vstudio the
>> formatting is correct. 
>> 
>> Patched files have been tested on Win2k3 x86, x64 & ia64.
>> IPoIB & DAPL tests have run successfully.
>> 
>> If you agree these patches are correct, I will push the
>> modified files to svn.
>> 
>> Thanks,
>> 
>> Stan.
>> 
>> Signed off by Stan.Smith at intel.com
>> 
>> diff U3 core/bus/kernel/bus_iou_mgr.c core/bus/kernel/bus_iou_mgr.c
>> --- core/bus/kernel/bus_iou_mgr.c	Fri Oct 12 13:10:15 2007
>> +++ core/bus/kernel/bus_iou_mgr.c	Thu Dec 13 11:49:57 2007 @@
-971,7
>>  	+971,7 @@ }
>> 
>>  	/* Device ID is "IBA\SID_<sid> where <sid> is the IPoIB
>> Service ID. */
>> -	p_string = ExAllocatePool( PagedPool, IOU_DEV_ID_SIZE );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, IOU_DEV_ID_SIZE,
>>  	'didq' ); if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1016,7 +1016,7 @@
>>  		return STATUS_NO_SUCH_DEVICE;
>>  	}
>> 
>> -	p_string = ExAllocatePool( PagedPool, IOU_HW_ID_SIZE );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, IOU_HW_ID_SIZE,
>>  	'dihq' ); if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1070,7 +1070,7 @@
>> 
>>  	UNUSED_PARAM( p_dev_obj );
>> 
>> -	p_string = ExAllocatePool( PagedPool, sizeof(IOU_COMPAT_ID) );
>> +	p_string = ExAllocatePoolWithTag( PagedPool,
>> sizeof(IOU_COMPAT_ID), 'dicq' );
>>  	if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1106,7 +1106,7 @@
>>  	}
>> 
>>  	/* The instance ID is the port GUID. */
>> -	p_string = ExAllocatePool( PagedPool, sizeof(WCHAR) * 33 );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, sizeof(WCHAR) * 33,
>>  	'diuq' ); if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1152,8 +1152,9 @@
>>  	}
>> 
>>  	/* The instance ID is the port GUID. */
>> -	p_string =
>> -		ExAllocatePool( PagedPool, sizeof(WCHAR) *
>> sizeof(p_ext->desc) );
>> +	p_string = ExAllocatePoolWithTag( PagedPool,
>> +
>> sizeof(WCHAR) * sizeof(p_ext->desc),
>> +
>> 'sedq' );
>>  	if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1197,7 +1198,7 @@
>>  		return STATUS_NO_SUCH_DEVICE;
>>  	}
>> 
>> -	p_string = ExAllocatePool( PagedPool, IOU_LOCATION_SIZE );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, IOU_LOCATION_SIZE,
>>  	'colq' ); if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1236,7 +1237,7 @@
>> 
>>  	*p_action = IrpComplete;
>> 
>> -	p_bus_info = ExAllocatePool( PagedPool,
>> sizeof(PNP_BUS_INFORMATION) );
>> +	p_bus_info = ExAllocatePoolWithTag( PagedPool,
>> sizeof(PNP_BUS_INFORMATION), 'subq' );
>>  	if( !p_bus_info )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> diff U3 core/bus/kernel/bus_port_mgr.c core/bus/kernel/bus_port_mgr.c
>> --- core/bus/kernel/bus_port_mgr.c	Fri Oct 12 13:10:15 2007
>> +++ core/bus/kernel/bus_port_mgr.c	Thu Dec 13 11:27:15 2007 @@
>>  	-966,7 +966,7 @@ }
>> 
>>  	/* Device ID is "IBA\SID_<sid> where <sid> is the IPoIB
>> Service ID. */
>> -	p_string = ExAllocatePool( PagedPool, sizeof(IPOIB_DEVICE_ID) );
>> +	p_string = ExAllocatePoolWithTag( PagedPool,
>> sizeof(IPOIB_DEVICE_ID), 'vedq' );
>>  	if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1000,7 +1000,7 @@
>>  		return STATUS_NO_SUCH_DEVICE;
>>  	}
>> 
>> -	p_string = ExAllocatePool( PagedPool, sizeof(IPOIB_HARDWARE_ID)
);
>> +	p_string = ExAllocatePoolWithTag( PagedPool,
>> sizeof(IPOIB_HARDWARE_ID), 'ihqp' );
>>  	if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1027,7 +1027,7 @@
>> 
>>  	UNUSED_PARAM( p_dev_obj );
>> 
>> -	p_string = ExAllocatePool( PagedPool, sizeof(IPOIB_COMPAT_ID) );
>> +	p_string = ExAllocatePoolWithTag( PagedPool,
>> sizeof(IPOIB_COMPAT_ID), 'icqp' );
>>  	if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1063,7 +1063,7 @@
>>  	}
>> 
>>  	/* The instance ID is the port GUID. */
>> -	p_string = ExAllocatePool( PagedPool, sizeof(WCHAR) * 17 );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, sizeof(WCHAR) * 17,
>>  	'iuqp' ); if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1108,7 +1108,7 @@
>> 
>> 
>>  	/* The instance ID is the port GUID. */
>> -	p_string = ExAllocatePool( PagedPool, sizeof(IPOIB_DESCRIPTION)
);
>> +	p_string = ExAllocatePoolWithTag( PagedPool,
>> sizeof(IPOIB_DESCRIPTION), 'edqp' );
>>  	if( !p_string )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1171,7 +1171,7 @@
>>  		return STATUS_INSUFFICIENT_RESOURCES;
>>  	}
>> 
>> -	p_string = ExAllocatePool( PagedPool, size );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, size, 'olqp' );
if(
>>  	!p_string ) {
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> @@ -1224,7 +1224,7 @@
>> 
>>  	*p_action = IrpComplete;
>> 
>> -	p_bus_info = ExAllocatePool( PagedPool,
>> sizeof(PNP_BUS_INFORMATION) );
>> +	p_bus_info = ExAllocatePoolWithTag( PagedPool,
>> sizeof(PNP_BUS_INFORMATION), 'ibqp' );
>>  	if( !p_bus_info )
>>  	{
>>  		BUS_TRACE_EXIT( BUS_DBG_ERROR,
>> diff U3 core/complib/kernel/cl_memory_osd.c
>> core/complib/kernel/cl_memory_osd.c
>> --- core/complib/kernel/cl_memory_osd.c	Fri Oct 12 13:10:13 2007
>> +++ core/complib/kernel/cl_memory_osd.c	Thu Dec 13 11:29:35 2007
@@
>>  	-41,12 +41,12 @@ if( pageable )
>>  	{
>>  		CL_ASSERT( KeGetCurrentIrql() < DISPATCH_LEVEL );
>> -		return( ExAllocatePool( PagedPool, size ) );
>> +		return( ExAllocatePoolWithTag( PagedPool, size, 'virp' )
);
>>  	}
>>  	else
>>  	{
>>  		CL_ASSERT( KeGetCurrentIrql() <= DISPATCH_LEVEL );
>> -		return( ExAllocatePool( NonPagedPool, size ) );
>> +		return( ExAllocatePoolWithTag( NonPagedPool, size,
'virp' ) );
>>  	}
>>  }
>> 
>> @@ -56,5 +56,5 @@
>>  	IN	void* const	p_memory )
>>  {
>>  	CL_ASSERT( KeGetCurrentIrql() <= DISPATCH_LEVEL ); -
ExFreePool(
>> p_memory ); +	ExFreePoolWithTag( p_memory, 'virp' );
>>  }
>> diff U3 core/complib/kernel/cl_pnp_po.c
>> core/complib/kernel/cl_pnp_po.c
>> --- core/complib/kernel/cl_pnp_po.c	Fri Oct 12 13:10:13 2007
>> +++ core/complib/kernel/cl_pnp_po.c	Thu Dec 13 11:30:32 2007 @@
>>  		-1207,7 +1207,7 @@ alloc_size += (sizeof(PDEVICE_OBJECT)
*
>> p_old_rel->Count);
>> 
>>  	/* Allocate the new relations structure. */
>> -	p_rel = ExAllocatePool( PagedPool, alloc_size );
>> +	p_rel = ExAllocatePoolWithTag( PagedPool, alloc_size, 'ralc' );
>>  	p_irp->IoStatus.Information = (ULONG_PTR)p_rel;
>>  	if( !p_rel )
>>  	{
>> diff U3 core/iou/kernel/iou_ioc_mgr.c core/iou/kernel/iou_ioc_mgr.c
>> --- core/iou/kernel/iou_ioc_mgr.c	Fri Oct 12 13:10:29 2007
>> +++ core/iou/kernel/iou_ioc_mgr.c	Thu Dec 13 11:36:46 2007 @@
-823,7
>>  		+823,7 @@ return STATUS_NO_SUCH_DEVICE;
>>  	}
>> 
>> -	p_string = ExAllocatePool( PagedPool, IOC_DEV_ID_SIZE );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, IOC_DEV_ID_SIZE,
>>  	'didq' ); if( !p_string )
>>  	{
>>  		IOU_PRINT_EXIT( TRACE_LEVEL_ERROR,
>> IOU_DBG_ERROR, @@ -875,7 +875,7 @@
>>  		return STATUS_NO_SUCH_DEVICE;
>>  	}
>> 
>> -	p_string = ExAllocatePool( PagedPool, IOC_HW_ID_SIZE );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, IOC_HW_ID_SIZE,
>>  	'ihqi' ); if( !p_string )
>>  	{
>>  		IOU_PRINT_EXIT( TRACE_LEVEL_ERROR,
>> IOU_DBG_ERROR, @@ -967,7 +967,7 @@
>>  		return STATUS_NO_SUCH_DEVICE;
>>  	}
>> 
>> -	p_string = ExAllocatePool( PagedPool, IOC_COMPAT_ID_SIZE );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, IOC_COMPAT_ID_SIZE,
>>  	'icqi' ); if( !p_string )
>>  	{
>>  		IOU_PRINT_EXIT( TRACE_LEVEL_ERROR,
>> IOU_DBG_ERROR, @@ -1032,7 +1032,7 @@
>>  	}
>> 
>>  	/* The instance ID is the port GUID. */
>> -	p_string = ExAllocatePool( PagedPool, sizeof(WCHAR) * 33 );
>> +	p_string = ExAllocatePoolWithTag( PagedPool, sizeof(WCHAR) * 33,
>>  	'iuqi' ); if( !p_string )
>>  	{
>>  		IOU_PRINT_EXIT( TRACE_LEVEL_ERROR,
>> IOU_DBG_ERROR, @@ -1078,8 +1078,9 @@
>>  		return STATUS_NO_SUCH_DEVICE;
>>  	}
>> 
>> -	p_string = ExAllocatePool(
>> -		PagedPool, sizeof(WCHAR) *
>> sizeof(p_ext->info.profile.id_string) );
>> +	p_string = ExAllocatePoolWithTag( PagedPool,
>> +
>> sizeof(WCHAR) * sizeof(p_ext->info.profile.id_string), +
>> 'edqi');
>>  	if( !p_string )
>>  	{
>>  		IOU_PRINT_EXIT( TRACE_LEVEL_ERROR,
>> IOU_DBG_ERROR, @@ -1142,9 +1143,9 @@
>>  		return STATUS_NO_SUCH_DEVICE;
>>  	}
>> 
>> -	p_string = ExAllocatePool( PagedPool,
>> -		max( IOC_LOCATION_SIZE,
>> -		sizeof( WCHAR ) * ( sizeof(
>> p_ext->info.profile.id_string ) + 1 )));
>> +	p_string = ExAllocatePoolWithTag( PagedPool,
>> +		max( IOC_LOCATION_SIZE, sizeof( WCHAR ) * ( sizeof(
>> p_ext->info.profile.id_string ) + 1 )),
>> +		'olqi');
>>  	if( !p_string )
>>  	{
>>  		IOU_PRINT_EXIT( TRACE_LEVEL_ERROR,
>> IOU_DBG_ERROR, @@ -1201,7 +1202,7 @@
>> 
>>  	*p_action = IrpComplete;
>> 
>> -	p_iou_info = ExAllocatePool( PagedPool,
>> sizeof(PNP_BUS_INFORMATION) );
>> +	p_iou_info = ExAllocatePoolWithTag( PagedPool,
>> sizeof(PNP_BUS_INFORMATION), 'ibqi' );
>>  	if( !p_iou_info )
>>  	{
>>  		IOU_PRINT_EXIT( TRACE_LEVEL_ERROR,
>> IOU_DBG_ERROR, diff U3 hw/mt23108/kernel/hca_driver.c
>> hw/mt23108/kernel/hca_driver.c
>> --- hw/mt23108/kernel/hca_driver.c	Fri Oct 12 13:11:31 2007
>> +++ hw/mt23108/kernel/hca_driver.c	Thu Dec 13 11:38:44 2007 @@
>> -664,7 +664,7 @@ 
>> 
>>  	HCA_ENTER( HCA_DBG_PNP );
>> 
>> -	p_ifc = ExAllocatePool( PagedPool, sizeof(ci_interface_t) );
>> +	p_ifc = ExAllocatePoolWithTag( PagedPool,
>> sizeof(ci_interface_t), 'fiha' );
>>  	if( !p_ifc )
>>  	{
>>  		HCA_TRACE_EXIT( HCA_DBG_ERROR,
>> diff U3 hw/mt23108/vapi/mlxsys/mosal/os_dep/win/mosal_mem.c
>> hw/mt23108/vapi/mlxsys/mosal/os_dep/win/mosal_mem.c
>> --- hw/mt23108/vapi/mlxsys/mosal/os_dep/win/mosal_mem.c
>> Fri Oct 12
>> 13:11:10 2007
>> +++ hw/mt23108/vapi/mlxsys/mosal/os_dep/win/mosal_mem.c
>> Thu Dec 13
>> 11:44:59 2007
>> @@ -912,7 +912,7 @@
>>  	if (flags)
>>  		return
>> (MT_virt_addr_t)ExAllocatePoolWithTag(NonPagedPool,size,flags); 
>> else -		return
>> (MT_virt_addr_t)ExAllocatePool(NonPagedPool,size);
>> +		return
>> (MT_virt_addr_t)ExAllocatePoolWithTag(NonPagedPool,size,'amOM');  }
>> 
>> 
>> /*************************************************************
>> **********
>> *******
>> diff U3 hw/mt23108/vapi/mlxsys/os_dep/win/tdriver/MdDbg.c
>> hw/mt23108/vapi/mlxsys/os_dep/win/tdriver/MdDbg.c
>> --- hw/mt23108/vapi/mlxsys/os_dep/win/tdriver/MdDbg.c	Fri Oct
12
>> 13:11:07 2007 +++
>> hw/mt23108/vapi/mlxsys/os_dep/win/tdriver/MdDbg.c	Thu Dec 13
>>  10:36:21 2007 @@ -49,7 +49,7 @@ {
>>  	g_pDbgData->m_nExAllocCount++;
>>      MdKdPrint( DBGLVL_HIGH,("MdExAllocatePool()
>> nExAllocCount = %d\n", g_pDbgData->m_nExAllocCount ));
>> -	return ExAllocatePool(  PoolType, NumberOfBytes );
>> +	return ExAllocatePoolWithTag(  PoolType, NumberOfBytes, 'xEdM'
);
>> 
>>  }
>> 
>> @@ -63,7 +63,7 @@
>>  {
>>  	g_pDbgData->m_nExAllocCount--;
>>      MdKdPrint( DBGLVL_HIGH,("MdExFreePool() nExAllocCount =
>> %d\n", g_pDbgData->m_nExAllocCount ));
>> -	ExFreePool(  p );
>> +	ExFreePoolWithTag(  p, 'xEdM' );
>>  }
>> 
>> 
>> diff U3 hw/mt23108/vapi/mlxsys/os_dep/win/tdriver/MdDbg.h
>> hw/mt23108/vapi/mlxsys/os_dep/win/tdriver/MdDbg.h
>> --- hw/mt23108/vapi/mlxsys/os_dep/win/tdriver/MdDbg.h	Fri Oct
12
>> 13:11:07 2007 +++
>> hw/mt23108/vapi/mlxsys/os_dep/win/tdriver/MdDbg.h	Thu Dec 13
>>  11:47:33 2007 @@ -225,8 +225,8 @@ #define MdStringForPnpMnFunc(
>>  mnfunc ) #define MdStringForIrpMjFunc(  mjfunc )
>> 
>> -#define MdExAllocatePool( typ, siz )  ExAllocatePool( typ, siz )
>> -#define MdExFreePool( p )   ExFreePool( p )
>> +#define MdExAllocatePool( typ, siz )  ExAllocatePoolWithTag(
>> typ, siz,
>> 'xEdM' )
>> +#define MdExFreePool( p )   ExFreePoolWithTag( p, 'xEdM' )
>> 
>> 
>>  #endif /* DBG */
>> diff U3 hw/mthca/kernel/hca_pnp.c hw/mthca/kernel/hca_pnp.c
>> --- hw/mthca/kernel/hca_pnp.c	Fri Oct 12 13:10:55 2007
>> +++ hw/mthca/kernel/hca_pnp.c	Thu Dec 13 11:40:53 2007 @@
-431,7
>>  	+431,7 @@ HCA_ENTER( HCA_DBG_PNP );
>> 
>>  	pIfc =
>> -		(ci_interface_t*)ExAllocatePool( PagedPool,
>> sizeof(ci_interface_t) );
>> +		(ci_interface_t*)ExAllocatePoolWithTag( PagedPool,
>> sizeof(ci_interface_t), 'pnpa' );
>>  	if( !pIfc )
>>  	{
>>  		HCA_PRINT( TRACE_LEVEL_ERROR,HCA_DBG_PNP, @@
>> -564,8 +564,8 @@
>>  	if (!p_ext->al_sym_name.Buffer) {
>>  		p_ext->al_sym_name.Length =
>> pNotify->SymbolicLinkName->Length;
>>  		p_ext->al_sym_name.MaximumLength =
>> pNotify->SymbolicLinkName->MaximumLength;
>> -		p_ext->al_sym_name.Buffer = ExAllocatePool(
>> NonPagedPool,
>> -			p_ext->al_sym_name.MaximumLength *
>> sizeof(wchar_t) );
>> +		p_ext->al_sym_name.Buffer = ExAllocatePoolWithTag(
>> NonPagedPool,
>> +			p_ext->al_sym_name.MaximumLength *
>> sizeof(wchar_t), 'cfin' );
>>  		if (!p_ext->al_sym_name.Buffer)
>>  		{
>>  			HCA_PRINT( TRACE_LEVEL_ERROR
>> ,HCA_DBG_PNP ,("allocation of sym IBAL name failed.\n"));




More information about the ofw mailing list