fix more spin lock
This commit is contained in:
@@ -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.
|
||||
|
||||
|
||||
@@ -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 ();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user