[ofw] [Patches 27/26][Core][bus] fix dditional IRQL warnings with driver directive.
Alex Naslednikov
xalex at mellanox.co.il
Sun Jun 26 03:30:51 PDT 2011
Applied at 3146
-----Original Message-----
From: Alex Naslednikov
Sent: Thursday, June 23, 2011 5:44 PM
To: 'Smith, Stan'; 'ofw at lists.openfabrics.org'
Subject: [ofw] [Patches 27/26][Core][bus] fix dditional IRQL warnings with driver directive.
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_port_mgr.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_port_mgr.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_port_mgr.c (revision 8370)
@@ -525,8 +525,8 @@
/*
* Called to get bus relations for an HCA.
*/
-NTSTATUS
-port_mgr_get_bus_relations(
+#pragma prefast(suppress: 28167, "The irql level is restored here")
+NTSTATUS port_mgr_get_bus_relations(
IN const net64_t ca_guid,
IN IRP* const p_irp )
{
@@ -583,8 +583,8 @@
return STATUS_SUCCESS;
}
-static ib_api_status_t
-__port_was_hibernated(
+#pragma prefast(suppress: 28167, "The irql level is restored here")
+static ib_api_status_t __port_was_hibernated(
IN ib_pnp_port_rec_t* p_pnp_rec,
IN bus_filter_t* p_bfi )
{
@@ -958,6 +958,7 @@
* output: none
* return: cl_status
*************************************************************************************/
+#pragma prefast(suppress: 28167, "The irql level is restored here")
cl_status_t _port_mgr_pkey_rem( IN pkey_array_t *pkeys,
IN port_mgr_t *p_port_mgr )
{
@@ -1039,6 +1040,7 @@
* output: none
* return: cl_status
*************************************************************************************/
+#pragma prefast(suppress: 28167, "The irql level is restored here")
cl_status_t _port_mgr_pkey_add( IN pkey_array_t *req_pkeys,
IN bus_filter_t *p_bfi,
IN port_mgr_t *p_port_mgr )
@@ -1175,9 +1177,8 @@
return ( success_cnt ? CL_SUCCESS : CL_ERROR ); }
-
-void
-port_mgr_port_remove(
+#pragma prefast(suppress: 28167, "The irql level is restored here")
+void port_mgr_port_remove(
IN ib_pnp_port_rec_t* p_pnp_rec )
{
bus_pdo_ext_t *p_ext;
@@ -1380,9 +1381,8 @@
return STATUS_SUCCESS;
}
-
-static void
-port_release_resources(
+#pragma prefast(suppress: 28167, "The irql level is restored here")
+static void port_release_resources(
IN DEVICE_OBJECT* const p_dev_obj )
{
bus_port_ext_t *p_ext;
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_iou_mgr.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_iou_mgr.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_iou_mgr.c (revision 8370)
@@ -525,8 +525,8 @@
/*
* Called to get child relations for the bus root.
*/
-NTSTATUS
-iou_mgr_get_bus_relations(
+#pragma prefast(suppress: 28167, "The irql level is restored here")
+NTSTATUS iou_mgr_get_bus_relations(
IN const net64_t ca_guid,
IN IRP* const p_irp )
{
@@ -579,8 +579,8 @@
}
-static ib_api_status_t
-__iou_was_hibernated(
+#pragma prefast(suppress: 28167, "The irql level is restored here")
+static ib_api_status_t __iou_was_hibernated(
IN ib_pnp_iou_rec_t* p_pnp_rec,
IN bus_filter_t* p_bfi )
{
@@ -800,9 +800,8 @@
return IB_SUCCESS;
}
-
-void
-iou_mgr_iou_remove(
+#pragma prefast(suppress: 28167, "The irql level is restored here")
+void iou_mgr_iou_remove(
IN ib_pnp_iou_rec_t* p_pnp_rec )
{
bus_pdo_ext_t *p_ext;
@@ -959,9 +958,8 @@
return STATUS_SUCCESS;
}
-
-static void
-iou_release_resources(
+#pragma prefast(suppress: 28167, "The irql level is restored here")
+static void iou_release_resources(
IN DEVICE_OBJECT* const p_dev_obj )
{
bus_iou_ext_t *p_ext;
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_proxy.h
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_proxy.h (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_proxy.h (revision 8370)
@@ -213,6 +213,10 @@
}
#pragma warning(default:4706)
+#ifdef NTDDI_WIN8
+static IO_CSQ_INSERT_IRP __insert_irp;
+#endif
+
static VOID __insert_irp(
IN PIO_CSQ Csq,
IN PIRP Irp
@@ -222,6 +226,10 @@
InsertTailList( &p_al_csq->queue, &Irp->Tail.Overlay.ListEntry ); }
+#ifdef NTDDI_WIN8
+static IO_CSQ_REMOVE_IRP __insert_irp;
+#endif
+
static VOID __remove_irp(
IN PIO_CSQ Csq,
IN PIRP Irp
@@ -231,6 +239,10 @@
RemoveEntryList( &Irp->Tail.Overlay.ListEntry ); }
+#ifdef NTDDI_WIN8
+static IO_CSQ_PEEK_NEXT_IRP __peek_next_irp; #endif
+
static PIRP __peek_next_irp(
IN PIO_CSQ Csq,
IN PIRP Irp,
@@ -281,6 +293,14 @@
return nextIrp;
}
+#ifdef NTDDI_WIN8
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_raises_(DISPATCH_LEVEL)
+//TOD __drv_at(p_ndi_csq->lock,
+__drv_acquiresExclusiveResource(KSPIN_LOCK))
+__drv_at(pIrql, __drv_savesIRQL)
+#endif
+#pragma prefast(suppress: 28167, "The irql level is saved by
+cl_spinlock_acquire, impossible to annotate by driver directives")
+#pragma prefast(suppress: 28158, "The irql level is stored by
+cl_spinlock_acquire, impossible to annotate by driver directives")
static VOID __acquire_lock(
IN PIO_CSQ Csq,
OUT PKIRQL Irql
@@ -290,6 +310,15 @@
KeAcquireSpinLock( &p_al_csq->lock, Irql ); }
+#ifdef NTDDI_WIN8
+static IO_CSQ_ACQUIRE_LOCK __acquire_lock;
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(DISPATCH_LEVEL)
+//TODO __drv_at(p_ndi_csq->lock,
+__drv_restoresExclusiveResource(KSPIN_LOCK))
+__drv_at(Irql, __drv_restoresIRQL)
+#endif
+#pragma prefast(suppress: 28167, "The irql level is restored by
+KeReleaseSpinLock, impossible to annotate by driver directives")
static VOID __release_lock(
IN PIO_CSQ Csq,
IN KIRQL Irql
@@ -299,6 +328,10 @@
KeReleaseSpinLock( &p_al_csq->lock, Irql ); }
+#ifdef NTDDI_WIN8
+static IO_CSQ_COMPLETE_CANCELED_IRP __complete_cancelled_irp; #endif
+
static VOID __complete_cancelled_irp(
IN PIO_CSQ Csq,
IN PIRP Irp
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_cm_cep.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_cm_cep.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_cm_cep.c (revision 8370)
@@ -6557,6 +6557,11 @@
AL_EXIT( AL_DBG_CM );
}
+#ifdef NTDDI_WIN8
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(DISPATCH_LEVEL)
+__drv_at(p_irp->CancelIrql, __drv_restoresIRQL) #endif
static void
__cep_cancel_ndi_irp(
IN DEVICE_OBJECT* p_dev_obj,
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_ndi_cm.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_ndi_cm.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_ndi_cm.c (revision 8370)
@@ -301,8 +301,10 @@
* CSQ
*
******************************************************************/
+#ifdef NTDDI_WIN8
+static IO_CSQ_INSERT_IRP_EX __ndi_insert_irp_ex; #endif
-
static NTSTATUS __ndi_insert_irp_ex(
IN PIO_CSQ pCsq,
IN PIRP pIrp,
@@ -364,6 +366,11 @@
return status;
}
+#ifdef NTDDI_WIN8
+static IO_CSQ_REMOVE_IRP __ndi_remove_irp; #endif
+
+
static VOID __ndi_remove_irp(
IN PIO_CSQ Csq,
IN PIRP Irp
@@ -376,6 +383,11 @@
AL_EXIT( AL_DBG_NDI );
}
+#ifdef NTDDI_WIN8
+static IO_CSQ_PEEK_NEXT_IRP __peek_next_irp; #endif
+
+
static PIRP __ndi_peek_next_irp(
IN PIO_CSQ Csq,
IN PIRP Irp,
@@ -429,6 +441,18 @@
return nextIrp;
}
+#ifdef NTDDI_WIN8
+static IO_CSQ_ACQUIRE_LOCK __ndi_acquire_lock; #endif
+
+
+#ifdef NTDDI_WIN8
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_raises_(DISPATCH_LEVEL)
+//TOD __drv_at(p_ndi_csq->lock,
+__drv_acquiresExclusiveResource(KSPIN_LOCK))
+__drv_at(pIrql, __drv_savesIRQL)
+#endif
+#pragma prefast(suppress: 28167, "The irql level is saved by
+cl_spinlock_acquire, impossible to annotate by driver directives")
static VOID __ndi_acquire_lock(
IN PIO_CSQ Csq,
OUT PKIRQL pIrql
@@ -437,8 +461,20 @@
nd_csq_t *p_ndi_csq = (nd_csq_t*)Csq;
KeAcquireSpinLock( &p_ndi_csq->lock, pIrql ); -}
+}
+
+#ifdef NTDDI_WIN8
+static IO_CSQ_RELEASE_LOCK __ndi_release_lock; #endif
+
+#ifdef NTDDI_WIN8
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(DISPATCH_LEVEL)
+//TODO __drv_at(p_ndi_csq->lock,
+__drv_restoresExclusiveResource(KSPIN_LOCK))
+__drv_at(Irql, __drv_restoresIRQL)
+#endif
+#pragma prefast(suppress: 28167, "The irql level is restored by
+KeReleaseSpinLock, impossible to annotate by driver directives")
static VOID __ndi_release_lock(
IN PIO_CSQ Csq,
IN KIRQL Irql
@@ -449,6 +485,10 @@
KeReleaseSpinLock( &p_ndi_csq->lock, Irql ); }
+#ifdef NTDDI_WIN8
+static IO_CSQ_COMPLETE_CANCELED_IRP __ndi_complete_cancelled_irp;
+#endif
+
static VOID __ndi_complete_cancelled_irp(
IN PIO_CSQ Csq,
IN PIRP p_irp
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_ndi_cq.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_ndi_cq.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_ndi_cq.c (revision 8370)
@@ -138,6 +138,9 @@
* CSQ
*
******************************************************************/
+#ifdef NTDDI_WIN8
+static IO_CSQ_INSERT_IRP __ndi_insert_irp; #endif
static VOID __ndi_insert_irp(
IN PIO_CSQ Csq,
@@ -151,6 +154,10 @@
AL_EXIT( AL_DBG_NDI );
}
+#ifdef NTDDI_WIN8
+static IO_CSQ_REMOVE_IRP __ndi_remove_irp; #endif
+
static VOID __ndi_remove_irp(
IN PIO_CSQ Csq,
IN PIRP Irp
@@ -163,6 +170,10 @@
AL_EXIT( AL_DBG_NDI );
}
+#ifdef NTDDI_WIN8
+static IO_CSQ_PEEK_NEXT_IRP __peek_next_irp; #endif
+
static PIRP __ndi_peek_next_irp(
IN PIO_CSQ Csq,
IN PIRP Irp,
@@ -214,6 +225,15 @@
return nextIrp;
}
+#ifdef NTDDI_WIN8
+static IO_CSQ_ACQUIRE_LOCK __ndi_acquire_lock;
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+__drv_raisesIRQL(DISPATCH_LEVEL)
+//TODO __drv_at((ndi_cq_csq_t*)Csq->h_cq->obj.lock,
+__drv_acquiresExclusiveResource(KSPIN_LOCK))
+_IRQL_saves_global_(SpinLock, pIrql)
+#endif
+#pragma prefast(suppress: 28167, "The irql level is restored by
+cl_spinlock_release, impossible to annotate by driver directives")
static VOID __ndi_acquire_lock(
IN PIO_CSQ Csq,
OUT PKIRQL Irql
@@ -228,6 +248,16 @@
AL_EXIT( AL_DBG_NDI );
}
+#ifdef NTDDI_WIN8
+static IO_CSQ_RELEASE_LOCK __ndi_release_lock;
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(DISPATCH_LEVEL)
+// TODO __drv_at(((ndi_cq_csq_t*)Csq)->h_cq->obj.lock,
+__drv_releasesExclusiveResource(KSPIN_LOCK))
+_IRQL_restores_global_(SpinLock, pIrql)
+
+#endif
+#pragma prefast(suppress: 28167, "The irql level is restored by
+cl_spinlock_release, impossible to annotate by driver directives")
static VOID __ndi_release_lock(
IN PIO_CSQ Csq,
IN KIRQL Irql
@@ -242,6 +272,10 @@
AL_EXIT( AL_DBG_NDI );
}
+#ifdef NTDDI_WIN8
+static IO_CSQ_COMPLETE_CANCELED_IRP __ndi_complete_cancelled_irp;
+#endif
+
static VOID __ndi_complete_cancelled_irp(
IN PIO_CSQ Csq,
IN PIRP Irp
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_proxy.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_proxy.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/kernel/al_proxy.c (revision 8370)
@@ -865,8 +865,8 @@
/*
* Process the ioctl UAL_REG_PNP:
*/
-static cl_status_t
-proxy_reg_pnp(
+#pragma prefast(suppress: 28167, "The irql level is restored here")
+static cl_status_t proxy_reg_pnp(
IN void *p_open_context,
IN cl_ioctl_handle_t h_ioctl )
{
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_ci_ca_shared.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_ci_ca_shared.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_ci_ca_shared.c (revision 8370)
@@ -587,33 +587,3 @@
return IB_SUCCESS;
}
-
-
-void
-ci_ca_lock_attr(
- IN al_ci_ca_t* const p_ci_ca )
-{
- CL_ASSERT( p_ci_ca );
-
- cl_spinlock_acquire( &p_ci_ca->attr_lock );
-}
-
-
-void
-ci_ca_excl_lock_attr(
- IN al_ci_ca_t* const p_ci_ca )
-{
- CL_ASSERT( p_ci_ca );
-
- cl_spinlock_acquire( &p_ci_ca->attr_lock );
-}
-
-
-void
-ci_ca_unlock_attr(
- IN al_ci_ca_t* const p_ci_ca )
-{
- CL_ASSERT( p_ci_ca );
-
- cl_spinlock_release( &p_ci_ca->attr_lock );
-}
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_dm.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_dm.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_dm.c (revision 8370)
@@ -38,7 +38,7 @@
#include "al_mgr.h"
#include "ib_common.h"
-#ifdef DRIVER
+#ifdef CL_KERNEL
#include <ntstrsafe.h>
#endif
@@ -764,7 +764,7 @@
cl_memclr( ®_svc_req, sizeof( ib_reg_svc_req_t ) );
reg_svc_req.svc_rec.service_lease = 0xffffffff; -#ifdef DRIVER
+#ifdef CL_KERNEL
RtlStringCchCopyA(
(char*)reg_svc_req.svc_rec.service_name,
sizeof(reg_svc_req.svc_rec.service_name),
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_common.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_common.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_common.c (revision 8370)
@@ -48,7 +48,8 @@
#include "al_mgr.h"
#include <complib/cl_math.h>
#include "ib_common.h"
-#ifdef DRIVER
+
+#if defined(CL_KERNEL) && defined (NTDDI_WIN8)
#include <ntstrsafe.h>
#else
#include <strsafe.h>
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_ci_ca.h
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_ci_ca.h (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/al/al_ci_ca.h (revision 8370)
@@ -204,18 +204,22 @@
IN al_ci_ca_t* p_ci_ca,
OUT ib_ca_attr_t** pp_old_pnp_attr );
-void
-ci_ca_lock_attr(
- IN al_ci_ca_t* const p_ci_ca );
-void
-ci_ca_excl_lock_attr(
- IN al_ci_ca_t* const p_ci_ca );
-void
-ci_ca_unlock_attr(
- IN al_ci_ca_t* const p_ci_ca );
+#define ci_ca_lock_attr(p_ci_ca) \
+ CL_ASSERT( p_ci_ca ); \
+ cl_spinlock_acquire( &p_ci_ca->attr_lock );
+
+#define ci_ca_excl_lock_attr(p_ci_ca ) \
+ CL_ASSERT( p_ci_ca ); \
+ cl_spinlock_acquire( &p_ci_ca->attr_lock );
+
+#define ci_ca_unlock_attr(p_ci_ca) \
+ CL_ASSERT( p_ci_ca ); \
+ cl_spinlock_release( &p_ci_ca->attr_lock );
+
+
ib_api_status_t
ci_call(
IN ib_ca_handle_t h_ca,
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/inc/kernel/complib/cl_spinlock_osd.h
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/inc/kernel/complib/cl_spinlock_osd.h (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/inc/kernel/complib/cl_spinlock_osd.h (revision 8370)
@@ -106,6 +106,8 @@
}
#ifdef NTDDI_WIN8
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(DISPATCH_LEVEL)
__drv_at(p_spinlock->lock, __drv_releasesExclusiveResource(KSPIN_LOCK))
__drv_at(p_spinlock->irql, __drv_restoresIRQL) #endif
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/inc/kernel/complib/cl_mutex_osd.h
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/inc/kernel/complib/cl_mutex_osd.h (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/inc/kernel/complib/cl_mutex_osd.h (revision 8370)
@@ -80,6 +80,39 @@
UNUSED_PARAM( p_mutex );
}
+/*
+//TODO : according to
+MSDN(http://msdn.microsoft.com/en-us/library/ff547911(v=VS.85).aspx),
+the definition of these fast mutex wrappers should be:
+But it DOES NOT work and still generates warnings 28157, 28158 !
+_IRQL_requires_max_(APC_LEVEL)
+_IRQL_raises_(APC_LEVEL)
+CL_INLINE VOID
+ cl_mutex_acquire(
+ _Inout_
+ __drv_out(_IRQL_saves_
+ __drv_acquiresResource(FastMutex))
+ PFAST_MUTEX FastMutex
+ )
+{
+ CL_ASSERT( KeGetCurrentIrql() < DISPATCH_LEVEL );
+ ExAcquireFastMutex( FastMutex );
+}
+
+_IRQL_requires_(APC_LEVEL)
+CL_INLINE VOID
+ cl_mutex_release(
+ _Inout_
+ __drv_in(_IRQL_restores_
+ __drv_releasesResource(FastMutex))
+ PFAST_MUTEX FastMutex
+ )
+
+{
+ CL_ASSERT( KeGetCurrentIrql() == APC_LEVEL );
+ ExReleaseFastMutex( FastMutex );
+}
+*/
+
#ifdef NTDDI_WIN8
_IRQL_requires_max_(APC_LEVEL)
_IRQL_raises_(APC_LEVEL)
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/hw/mlx4/kernel/bus/ib/mad.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/hw/mlx4/kernel/bus/ib/mad.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/hw/mlx4/kernel/bus/ib/mad.c (revision 8370)
@@ -868,6 +868,7 @@
}
}
+#pragma prefast(suppress: 28167, "The irql level is restored here")
static void node_desc_override(struct ib_device *dev,
struct ib_mad *mad)
{
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/hw/mlx4/kernel/bus/ib/qp.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/hw/mlx4/kernel/bus/ib/qp.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/hw/mlx4/kernel/bus/ib/qp.c (revision 8370)
@@ -730,6 +730,7 @@
}
}
+#pragma prefast(suppress: 28167, "The irql level is restored here")
static void mlx4_ib_lock_cqs(struct mlx4_ib_cq *send_cq, struct mlx4_ib_cq *recv_cq) {
if (send_cq == recv_cq)
@@ -743,6 +744,7 @@
}
}
+#pragma prefast(suppress: 28167, "The irql level is restored here")
static void mlx4_ib_unlock_cqs(struct mlx4_ib_cq *send_cq, struct mlx4_ib_cq *recv_cq) {
if (send_cq == recv_cq)
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/hw/mlx4/kernel/bus/ib/main.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/hw/mlx4/kernel/bus/ib/main.c (revision 8369)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/hw/mlx4/kernel/bus/ib/main.c (revision 8370)
@@ -473,6 +473,7 @@
return err;
}
+#pragma prefast(suppress: 28167, "The irql level is restored here")
static int mlx4_ib_modify_device(struct ib_device *ibdev, int mask,
struct ib_device_modify *props)
{
More information about the ofw
mailing list