The winverbs PD structure contains both an event and a guarded mutex.  Both must
be allocated as part of resident memory, or vague system corruptions may occur
if their memory is paged out.

The fix is to allocate the PD structure from NonPagedPool.

Signed-off-by: Sean Hefty <[email protected]>
---
This fix needs to go into winof 2.1

Index: core/winverbs/kernel/wv_pd.c
===================================================================
--- core/winverbs/kernel/wv_pd.c        (revision 2342)
+++ core/winverbs/kernel/wv_pd.c        (working copy)
@@ -74,7 +74,7 @@
        ib_api_status_t                 ib_status;
        WV_PROTECTION_DOMAIN    *pd;
 
-       pd = ExAllocatePoolWithTag(PagedPool, sizeof(WV_PROTECTION_DOMAIN),
'dpvw');
+       pd = ExAllocatePoolWithTag(NonPagedPool, sizeof(WV_PROTECTION_DOMAIN),
'dpvw');
        if (pd == NULL) {
                return STATUS_NO_MEMORY;
        }

Attachment: wv-pd.diff
Description: Binary data

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

Reply via email to