--- C:/Documents and Settings/scsmith/Local Settings/Temp/ipoib_port.cpp-revBASE.svn000.tmp.cpp	Fri Oct 29 15:53:44 2010
+++ C:/Documents and Settings/scsmith/My Documents/openIB-windows/SVN/gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp	Fri Oct 29 15:30:13 2010
@@ -73,7 +73,9 @@
 ipoib_port_t	*gp_ipoib_port;
 #endif
 
+static KDEFERRED_ROUTINE __port_mcast_garbage_dpc;
 static void __port_mcast_garbage_dpc(KDPC *p_gc_dpc,void *context,void *s_arg1, void *s_arg2);
+
 static void __port_do_mcast_garbage(ipoib_port_t* const	p_port );
 
 #if 0
@@ -1987,6 +1989,7 @@
 	IN				uint32_t					 *p_recv_cnt
 	);
 
+static IO_WORKITEM_ROUTINE __iopoib_WorkItem;
 
 static void
 __iopoib_WorkItem(
@@ -2008,9 +2011,15 @@
 		total_recv_cnt += recv_cnt;
 	}
 
-	if (WorkToDo) {
-		IoQueueWorkItem( p_port->pPoWorkItem, __iopoib_WorkItem, DelayedWorkQueue, p_port);
-	} else {
+	if (WorkToDo)
+	{
+		IoQueueWorkItem( p_port->pPoWorkItem,
+						 (PIO_WORKITEM_ROUTINE) __iopoib_WorkItem,
+						 DelayedWorkQueue,
+						 p_port );
+	}
+	else
+	{
 		// Release the reference count that was incremented when queued the work item.
 		ipoib_port_deref( p_port, ref_recv_cb );
 	}
