fix more spin lock

This commit is contained in:
NIIBE Yutaka
2015-09-08 17:14:43 +09:00
parent ee3c5d4e6f
commit 1b25cc5dcb
2 changed files with 4 additions and 0 deletions

View File

@@ -4,6 +4,8 @@
the condition inside.
(chx_timer_expired, chx_handle_intr): Call unconditionally.
(intr_lock): New variable.
(chx_handle_intr, chopstx_claim_irq, chopstx_release_irq)
(chopstx_release_irq_thread): Add spin lock with intr_lock.
* chopstx.h (chx_intr): Remove member LOCK.

View File

@@ -1331,6 +1331,7 @@ chopstx_release_irq_thread (struct chx_thread *tp)
chopstx_intr_t *intr, *intr_prev;
chx_cpu_sched_lock ();
chx_spin_lock (&intr_lock);
intr_prev = intr_top;
for (intr = intr_top; intr; intr = intr->next)
if (intr->tp == tp)
@@ -1344,6 +1345,7 @@ chopstx_release_irq_thread (struct chx_thread *tp)
else
intr_prev->next = intr->next;
}
chx_spin_unlock (&intr_lock);
chx_cpu_sched_unlock ();
}