[ofw] PATCH: [hw] Don't try to write to event log when there is nodriver object.

Tzachi Dar tzachid at mellanox.co.il
Wed Feb 11 02:49:34 PST 2009


Applied on 1942.
 
With Fabs comment.
 
Thanks
Tzachi


________________________________

	From: ofw-bounces at lists.openfabrics.org
[mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Tzachi Dar
	Sent: Monday, February 09, 2009 7:04 PM
	To: ofw at lists.openfabrics.org
	Subject: [ofw] PATCH: [hw] Don't try to write to event log when
there is nodriver object.
	
	
	The following checkin prevents blue screens that were found when
running with the driver verifier.
	 
	 
	Index: Q:/projinf2/trunk/hw/mlx4/kernel/bus/core/l2w_debug.c
	
===================================================================
	--- Q:/projinf2/trunk/hw/mlx4/kernel/bus/core/l2w_debug.c
(revision 3931)
	+++ Q:/projinf2/trunk/hw/mlx4/kernel/bus/core/l2w_debug.c
(revision 3932)
	@@ -45,6 +45,11 @@
	  int l_PktSize
=sizeof(IO_ERROR_LOG_PACKET)+pi_nDataItems*sizeof(ULONG);
	  int l_TotalSize =l_PktSize +l_Size;
	 
	+ if (pi_pIoObject == NULL) {
	+  ASSERT(FALSE);
	+  return;
	+ }
	+
	  /* Init the variable argument list */   
	  va_start(l_Argptr, pi_nDataItems);
	 
	@@ -132,6 +137,13 @@
	  // print to Debugger
	  va_start(list, format);
	  buf[MAX_BUFFER_SIZE - 1] = '\0';
	+
	+ if (mdev == NULL) {
	+  ASSERT(FALSE);
	+  return;
	+ }
	+
	+ 
	  if (RtlStringCbVPrintfA( (char*)buf, sizeof(buf), format,
list))
	   return;
	  cl_dbg_out( "%s\n", (char*)buf );
	@@ -177,6 +189,11 @@
	  UCHAR  buf[MAX_BUFFER_SIZE];
	  WCHAR  wbuf[MAX_BUFFER_SIZE];
	 
	+ if (mdev == NULL) {
	+  ASSERT(FALSE);
	+  return;
	+ }
	+
	  // print to Debugger
	  va_start(list, format);
	  buf[MAX_BUFFER_SIZE - 1] = '\0';
	Index: Q:/projinf2/trunk/hw/mlx4/kernel/inc/l2w.h
	
===================================================================
	--- Q:/projinf2/trunk/hw/mlx4/kernel/inc/l2w.h (revision 3931)
	+++ Q:/projinf2/trunk/hw/mlx4/kernel/inc/l2w.h (revision 3932)
	@@ -326,6 +326,9 @@
	 
	 static inline int mlx4_is_livefish(struct mlx4_dev *dev)
	 {
	+ if (dev == NULL) {
	+  return TRUE;
	+ }
	  return !!(dev->flags & MLX4_FLAG_LIVEFISH);
	 }
	 
	Index: Q:/projinf2/trunk/hw/mlx4/kernel/hca/drv.h
	
===================================================================
	--- Q:/projinf2/trunk/hw/mlx4/kernel/hca/drv.h (revision 3931)
	+++ Q:/projinf2/trunk/hw/mlx4/kernel/hca/drv.h (revision 3932)
	@@ -243,6 +243,9 @@
	 
	 static inline boolean_t hca_is_livefish(PFDO_DEVICE_DATA p_fdo)
	 {
	+ if (p_fdo == NULL) {
	+  return TRUE;
	+ }
	  return p_fdo->bus_ib_ifc.is_livefish;
	 }
	 
	Index: Q:/projinf2/trunk/hw/mthca/kernel/hca_debug.h
	
===================================================================
	--- Q:/projinf2/trunk/hw/mthca/kernel/hca_debug.h (revision
3931)
	+++ Q:/projinf2/trunk/hw/mthca/kernel/hca_debug.h (revision
3932)
	@@ -63,7 +63,11 @@
	  }
	 
	 #define HCA_PRINT_EV_MDEV(_level_,_flag_,_msg_)  \
	-
HCA_PRINT_TO_EVENT_LOG(mdev->ext->cl_ext.p_self_do,_level_,_flag_,_msg_)
	+{\
	+ if(mdev) {\
	+
HCA_PRINT_TO_EVENT_LOG(mdev->ext->cl_ext.p_self_do,_level_,_flag_,_msg_)
\
	+ }\
	+}\
	 
	 
	 #if defined(EVENT_TRACING)
	Index: Q:/projinf2/trunk/hw/mthca/kernel/mthca_log.c
	
===================================================================
	--- Q:/projinf2/trunk/hw/mthca/kernel/mthca_log.c (revision
3931)
	+++ Q:/projinf2/trunk/hw/mthca/kernel/mthca_log.c (revision
3932)
	@@ -73,6 +73,10 @@
	  /* Init the variable argument list */   
	  va_start(l_Argptr, pi_nDataItems);
	 
	+ if(pi_pIoObject == NULL) {
	+  return;
	+ }
	+ 
	  /* Allocate an error log entry */ 
	     l_pErrorLogEntry = 
	  (PIO_ERROR_LOG_PACKET)IoAllocateErrorLogEntry(
	@@ -165,6 +169,10 @@
	  int l_PktSize
=sizeof(IO_ERROR_LOG_PACKET)+pi_nDataItems*sizeof(ULONG);
	  int l_TotalSize =l_PktSize +l_Size;
	 
	+ if(pi_pIoObject == NULL) {
	+  return;
	+ }
	+ 
	  /* Init the variable argument list */   
	  va_start(l_Argptr, pi_nDataItems);
	 
	Index: Q:/projinf2/trunk/hw/mthca/kernel/mthca_dev.h
	
===================================================================
	--- Q:/projinf2/trunk/hw/mthca/kernel/mthca_dev.h (revision
3931)
	+++ Q:/projinf2/trunk/hw/mthca/kernel/mthca_dev.h (revision
3932)
	@@ -598,6 +598,9 @@
	 
	 static inline int mthca_is_livefish(struct mthca_dev *mdev)
	 {
	+ if(mdev == NULL) {
	+  return TRUE;
	+ }
	  return mdev->mthca_flags & MTHCA_FLAG_LIVEFISH;
	 }
	 
	

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20090211/aa29387b/attachment.html>


More information about the ofw mailing list