kernel: Undo changes to pinned threads and blocking.
This reverts commit58ed2965d0
. This reverts commit055d49b1fd
. I was mistaken, it is perfectly legal to block a pinned thread. It seems we'll need some other way to detect invalid context switches.
This commit is contained in:
parent
055d49b1fd
commit
13c4bc94ca
@ -233,9 +233,7 @@ x86_hardware_interrupt(struct iframe* frame)
|
|||||||
apic_end_of_interrupt();
|
apic_end_of_interrupt();
|
||||||
}
|
}
|
||||||
|
|
||||||
thread->pinned_to_cpu++;
|
|
||||||
int_io_interrupt_handler(vector, levelTriggered);
|
int_io_interrupt_handler(vector, levelTriggered);
|
||||||
thread->pinned_to_cpu--;
|
|
||||||
|
|
||||||
if (levelTriggered) {
|
if (levelTriggered) {
|
||||||
if (!sCurrentPIC->end_of_interrupt(vector))
|
if (!sCurrentPIC->end_of_interrupt(vector))
|
||||||
|
@ -2847,11 +2847,6 @@ thread_block_timeout(timer* timer)
|
|||||||
static inline status_t
|
static inline status_t
|
||||||
thread_block_locked(Thread* thread)
|
thread_block_locked(Thread* thread)
|
||||||
{
|
{
|
||||||
if (thread->pinned_to_cpu > 0) {
|
|
||||||
panic("attempting to block thread %" B_PRId32 ", which is pinned!",
|
|
||||||
thread->id);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (thread->wait.status == 1) {
|
if (thread->wait.status == 1) {
|
||||||
// check for signals, if interruptible
|
// check for signals, if interruptible
|
||||||
if (thread_is_interrupted(thread, thread->wait.flags)) {
|
if (thread_is_interrupted(thread, thread->wait.flags)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user