Hi,

 

I've made some modifications for the kernel mode driver to eliminate Prefast 
errors. Can someone help to review the patch and check them in if they're OK?

 

Patch file is also attached.

 

Thanks,

James

 

 

Index: inc/iba/ib_types.h

===================================================================

--- inc/iba/ib_types.h       (revision 1060)

+++ inc/iba/ib_types.h    (working copy)

@@ -221,7 +221,7 @@

 *

 * SOURCE

 */

-#define IB_DEFAULT_SUBNET_PREFIX                         
(CL_HTON64(0xFE80000000000000ULL))

+#define IB_DEFAULT_SUBNET_PREFIX                                    
(CL_HTON64(CL_CONST64(0xFE80000000000000)))

 /**********/

 

 /****d* IBA Base: Constants/IB_NODE_NUM_PORTS_MAX

@@ -2224,7 +2224,7 @@

            IN                     const    ib_gid_t* const                     
                  p_gid )

 {

            return( ( ib_gid_get_subnet_prefix( p_gid ) &

-                       CL_HTON64( 0xFFFFFFFFFFFF0000ULL ) ) == CL_HTON64( 
0xFEC0000000000000ULL ) );

+                      CL_HTON64( CL_CONST64( 0xFFFFFFFFFFFF0000 ) ) ) == 
CL_HTON64( CL_CONST64( 0xFEC0000000000000 ) ) );

 }

 /*

 * PARAMETERS

Index: inc/kernel/complib/cl_mutex_osd.h

===================================================================

--- inc/kernel/complib/cl_mutex_osd.h      (revision 1060)

+++ inc/kernel/complib/cl_mutex_osd.h   (working copy)

@@ -86,6 +86,10 @@

            IN         cl_mutex_t* const          p_mutex )

 {

            CL_ASSERT( KeGetCurrentIrql() < DISPATCH_LEVEL );

+          // Supressing Prefast Warning details are:

+          //          warning 8103 : Leaking the resource stored in 
'FastMutex:p_mutex'

+          //          Path includes 3 statements on the following lines:

+          #pragma prefast(suppress:8103, "Suprressing next line for Prefast 
warning for reason mentioned above in comments")

            ExAcquireFastMutex( p_mutex );

 }

 

@@ -95,6 +99,10 @@

            IN         cl_mutex_t* const          p_mutex )

 {

            CL_ASSERT( KeGetCurrentIrql() == APC_LEVEL );

+          // Supressing Prefast Warning details are:

+          //          warning 8107 : The resource 'FastMutex:p_mutex' must be 
held when calling this function..

+          //          Path includes 2 statements on the following lines:

+          #pragma prefast(suppress:8107, "Suprressing next line for Prefast 
warning for reason mentioned above in comments")

            ExReleaseFastMutex( p_mutex );

 }

 

Index: inc/kernel/complib/cl_spinlock_osd.h

===================================================================

--- inc/kernel/complib/cl_spinlock_osd.h   (revision 1060)

+++ inc/kernel/complib/cl_spinlock_osd.h            (working copy)

@@ -92,11 +92,21 @@

            CL_ASSERT( p_spinlock );

 

            if (irql == DISPATCH_LEVEL) {

+                      // Supressing Prefast Warning details are:

+                      //          warning 8103 : Leaking the resource stored 
in 'SpinLock:p_spinlock->lock'.

+                      //          Path includes 7 statements on the following 
lines:

+                      #pragma prefast(suppress:8103, "Suprressing next line 
for Prefast warning for reason mentioned above in comments")

                        KeAcquireSpinLockAtDpcLevel( &p_spinlock->lock );

                        p_spinlock->irql = irql;

            }

            else

+          {

+                      // Supressing Prefast Warning details are:

+                      //          warning 8103 : Leaking the resource stored 
in 'SpinLock:p_spinlock->lock'.

+                      //          Path includes 7 statements on the following 
lines:

+                      #pragma prefast(suppress:8103, "Suprressing next line 
for Prefast warning for reason mentioned above in comments")

                        KeAcquireSpinLock( &p_spinlock->lock, &p_spinlock->irql 
);

+          }

 }

 

 

@@ -107,9 +117,21 @@

            CL_ASSERT( p_spinlock );

 

            if (p_spinlock->irql == DISPATCH_LEVEL)

+          {

+                      // Supressing Prefast Warning details are:

+                      //          warning 8107 : The resource 
'SpinLock:p_spinlock->lock' must be held when calling this function..

+                      //          Path includes 7 statements on the following 
lines:

+                      #pragma prefast(suppress:8107, "Suprressing next line 
for Prefast warning for reason mentioned above in comments")

                        KeReleaseSpinLockFromDpcLevel( &p_spinlock->lock );

+          }

            else

+          {

+                      // Supressing Prefast Warning details are:

+                      //          warning 8107 : The resource 
'SpinLock:p_spinlock->lock' must be held when calling this function..

+                      //          Path includes 7 statements on the following 
lines:

+                      #pragma prefast(suppress:8107, "Suprressing next line 
for Prefast warning for reason mentioned above in comments")

                        KeReleaseSpinLock( &p_spinlock->lock, p_spinlock->irql 
);

+          }

 }

 

 

Index: inc/kernel/complib/cl_waitobj_osd.h

===================================================================

--- inc/kernel/complib/cl_waitobj_osd.h     (revision 1060)

+++ inc/kernel/complib/cl_waitobj_osd.h  (working copy)

@@ -58,8 +58,11 @@

             * Assumption that if the call fails, the h_kevent parameter is 
unchanged,

             * or set to NULL.

             */

-           ObReferenceObjectByHandle( h_user_wait_obj, STANDARD_RIGHTS_ALL,

-                       *ExEventObjectType, UserMode, (PVOID*)&h_kevent, NULL );

+          // Supressing Prefast Warning details are:

+          //          warning 8126 : The AccessMode parameter to 
ObReferenceObject* should be IRP->RequestorMode..

+          //          Path includes 7 statements on the following lines:

+          #pragma prefast(suppress:8126, "Suprressing next line for Prefast 
warning for reason mentioned above in comments")

+          ObReferenceObjectByHandle( h_user_wait_obj, STANDARD_RIGHTS_ALL, 
*ExEventObjectType, UserMode, (PVOID*)&h_kevent, NULL );

 

            return h_kevent;

 }

Attachment: prefast.patch
Description: prefast.patch

_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to