[hw] Don't try to write to event log when there is no driver object
authortzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 11 Feb 2009 10:49:02 +0000 (10:49 +0000)
committertzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 11 Feb 2009 10:49:02 +0000 (10:49 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1942 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

hw/mlx4/kernel/bus/core/l2w_debug.c
hw/mlx4/kernel/hca/drv.h
hw/mlx4/kernel/inc/l2w.h
hw/mthca/kernel/hca_debug.h
hw/mthca/kernel/mthca_dev.h
hw/mthca/kernel/mthca_log.c

index 9973d81..3780b26 100644 (file)
@@ -45,6 +45,11 @@ Return Value:
        int l_PktSize =sizeof(IO_ERROR_LOG_PACKET)+pi_nDataItems*sizeof(ULONG);
        int l_TotalSize =l_PktSize +l_Size;
 
+       if (pi_pIoObject == NULL) {
+               ASSERT(pi_pIoObject != NULL);
+               return;
+       }
+
        /* Init the variable argument list */   
        va_start(l_Argptr, pi_nDataItems);
 
@@ -132,6 +137,13 @@ mlx4_err(
        // print to Debugger
        va_start(list, format);
        buf[MAX_BUFFER_SIZE - 1] = '\0';
+
+       if (mdev == NULL) {
+               ASSERT(mdev != NULL);
+               return;
+       }
+
+       
        if (RtlStringCbVPrintfA( (char*)buf, sizeof(buf), format, list))
                return;
        cl_dbg_out( "%s\n", (char*)buf );
@@ -177,6 +189,11 @@ dev_err(
        UCHAR           buf[MAX_BUFFER_SIZE];
        WCHAR           wbuf[MAX_BUFFER_SIZE];
 
+       if (mdev == NULL) {
+               ASSERT(mdev != NULL);
+               return;
+       }
+
        // print to Debugger
        va_start(list, format);
        buf[MAX_BUFFER_SIZE - 1] = '\0';
index 913e7fb..3138c03 100644 (file)
@@ -243,6 +243,9 @@ static inline struct mlx4_dev *hca2mdev(mlnx_hca_t *p_hca)
 \r
 static inline boolean_t hca_is_livefish(PFDO_DEVICE_DATA p_fdo)\r
 {\r
+       if (p_fdo == NULL) {\r
+               return TRUE;\r
+       }\r
        return p_fdo->bus_ib_ifc.is_livefish;\r
 }\r
 \r
index fee2eca..59a5132 100644 (file)
@@ -326,6 +326,9 @@ struct mlx4_priv;
 
 static inline int mlx4_is_livefish(struct mlx4_dev *dev)
 {
+       if (dev == NULL) {
+               return TRUE;
+       }
        return !!(dev->flags & MLX4_FLAG_LIVEFISH);
 }
 
index fb330b8..924b36d 100644 (file)
@@ -63,7 +63,11 @@ static void _build_str( const char * format, ... )
        }\r
 \r
 #define HCA_PRINT_EV_MDEV(_level_,_flag_,_msg_)  \\r
-       HCA_PRINT_TO_EVENT_LOG(mdev->ext->cl_ext.p_self_do,_level_,_flag_,_msg_)\r
+{\\r
+       if(mdev) {\\r
+               HCA_PRINT_TO_EVENT_LOG(mdev->ext->cl_ext.p_self_do,_level_,_flag_,_msg_)\\r
+       }\\r
+}\\r
 \r
 \r
 #if defined(EVENT_TRACING)\r
index 41fae6f..ad31d15 100644 (file)
@@ -598,6 +598,9 @@ WriteEventLogEntryStr(
 
 static inline int mthca_is_livefish(struct mthca_dev *mdev)
 {
+       if(mdev == NULL) {
+               return TRUE;
+       }
        return mdev->mthca_flags & MTHCA_FLAG_LIVEFISH;
 }
 
index 6725108..07bfb6c 100644 (file)
@@ -73,6 +73,10 @@ Return Value:
        /* Init the variable argument list */   \r
        va_start(l_Argptr, pi_nDataItems);\r
 \r
+       if(pi_pIoObject == NULL) {\r
+               return;\r
+       }\r
+       \r
        /* Allocate an error log entry */ \r
     l_pErrorLogEntry = \r
        (PIO_ERROR_LOG_PACKET)IoAllocateErrorLogEntry(\r
@@ -165,6 +169,10 @@ Return Value:
        int l_PktSize =sizeof(IO_ERROR_LOG_PACKET)+pi_nDataItems*sizeof(ULONG);\r
        int l_TotalSize =l_PktSize +l_Size;\r
 \r
+       if(pi_pIoObject == NULL) {\r
+               return;\r
+       }\r
+       \r
        /* Init the variable argument list */   \r
        va_start(l_Argptr, pi_nDataItems);\r
 \r