Spin locks are operated at IRQL >= DISPATCH_LEVEL, thus, such code must not be paged. Otherwise, it can be paged out during its execution which provides the user with a IRQL_NOT_LESS_OR_EQUAL bug check. Virtio Socket driver wraps some of its spinlock usage into several inline functions:
VIOSockPendedRequestSetLocked,
VIOSockPendedRequestSetResumeLocked,
VIOSockPendedRequestGetLocked.
However, these functions are than called from routines marked as pageable code which can trigger the bug check. This commit makes the functions not inline, thus, making them reside in nonpaged memory.
Spin locks are operated at IRQL >=
DISPATCH_LEVEL
, thus, such code must not be paged. Otherwise, it can be paged out during its execution which provides the user with aIRQL_NOT_LESS_OR_EQUAL
bug check. Virtio Socket driver wraps some of its spinlock usage into several inline functions:VIOSockPendedRequestSetLocked
,VIOSockPendedRequestSetResumeLocked
,VIOSockPendedRequestGetLocked
.However, these functions are than called from routines marked as pageable code which can trigger the bug check. This commit makes the functions not inline, thus, making them reside in nonpaged memory.