[ibal] MAD completion callbacks are expected to be at DISPATCH_LEVEL. (mlnx 5654)
authortzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 10 Mar 2010 09:45:19 +0000 (09:45 +0000)
committertzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 10 Mar 2010 09:45:19 +0000 (09:45 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2726 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

core/al/kernel/al_smi.c

index 5e1c7fa..a94924f 100644 (file)
@@ -922,6 +922,7 @@ destroying_spl_qp_svc(
        al_mad_wr_t*                    p_mad_wr;\r
 \r
        ib_api_status_t                 status;\r
+       KIRQL irql;\r
 \r
        AL_ENTER( AL_DBG_SMI );\r
 \r
@@ -958,6 +959,7 @@ destroying_spl_qp_svc(
                        (ib_pfn_destroy_cb_t)deref_al_obj );\r
                CL_ASSERT( status == IB_SUCCESS );\r
 \r
+               irql = KeRaiseIrqlToDpcLevel();\r
                cl_spinlock_acquire( &p_spl_qp_svc->obj.lock );\r
 \r
                /* Complete any outstanding MAD sends operations as "flushed". */\r
@@ -973,6 +975,7 @@ destroying_spl_qp_svc(
                }\r
 \r
                cl_spinlock_release( &p_spl_qp_svc->obj.lock );\r
+               KeLowerIrql(irql);\r
                /* Receive MAD elements are returned to the pool by the free routine. */\r
        }\r
 \r