mirror of
https://github.com/drasko/codezero.git
synced 2026-01-15 20:33:16 +01:00
Fixed few more anomalies with threaded irqs.
There is a bug that causes the sleeping irq thread to never wake up. Investigating.
This commit is contained in:
@@ -42,6 +42,9 @@ int irq_register(struct ktcb *task, int notify_slot, l4id_t irq_index)
|
||||
this_desc->task = task;
|
||||
this_desc->task_notify_slot = notify_slot;
|
||||
|
||||
/* Setup irq desc waitqueue */
|
||||
waitqueue_head_init(&this_desc->wqh_irq);
|
||||
|
||||
/* Enable the irq */
|
||||
irq_enable(irq_index);
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ void sched_lock_runqueues(unsigned long *irqflags)
|
||||
{
|
||||
spin_lock_irq(&scheduler.sched_rq[0].lock, irqflags);
|
||||
spin_lock(&scheduler.sched_rq[1].lock);
|
||||
BUG_ON(irqs_enabled());
|
||||
}
|
||||
|
||||
void sched_unlock_runqueues(unsigned long irqflags)
|
||||
|
||||
Reference in New Issue
Block a user