Lines 392-407
Link Here
|
392 |
{ |
392 |
{ |
393 |
uint8_t oldirql; |
393 |
uint8_t oldirql; |
394 |
|
394 |
|
|
|
395 |
sched_pin(); |
395 |
oldirql = KeGetCurrentIrql(); |
396 |
oldirql = KeGetCurrentIrql(); |
396 |
|
397 |
|
397 |
/* I am so going to hell for this. */ |
398 |
/* I am so going to hell for this. */ |
398 |
if (oldirql > irql) |
399 |
if (oldirql > irql) |
399 |
panic("IRQL_NOT_LESS_THAN"); |
400 |
panic("IRQL_NOT_LESS_THAN"); |
400 |
|
401 |
|
401 |
if (oldirql != DISPATCH_LEVEL) { |
402 |
if (oldirql != DISPATCH_LEVEL) |
402 |
sched_pin(); |
|
|
403 |
mtx_lock(&disp_lock[curthread->td_oncpu]); |
403 |
mtx_lock(&disp_lock[curthread->td_oncpu]); |
404 |
} |
404 |
else |
|
|
405 |
sched_unpin(); |
405 |
/*printf("RAISE IRQL: %d %d\n", irql, oldirql);*/ |
406 |
/*printf("RAISE IRQL: %d %d\n", irql, oldirql);*/ |
406 |
|
407 |
|
407 |
return (oldirql); |
408 |
return (oldirql); |