X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=kernel%2Firq%2Fmanage.c;h=bde4c667d24dd067597f8451ce2fecc12bca17fa;hp=e485cea04bf11963b2f77f8adae3e25f4e76b8e8;hb=d90a7e86401ffea2163a4337f3a47f3909c4e255;hpb=4dbc9ca219b0f294332e734528f7b82211700170 diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index e485cea04bf1..bde4c667d24d 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -674,7 +674,6 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) */ get_task_struct(t); new->thread = t; - wake_up_process(t); } /* @@ -760,6 +759,7 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) (int)(new->flags & IRQF_TRIGGER_MASK)); } + new->irq = irq; *old_ptr = new; /* Reset broken irq detection when installing new handler */ @@ -777,7 +777,13 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) spin_unlock_irqrestore(&desc->lock, flags); - new->irq = irq; + /* + * Strictly no need to wake it up, but hung_task complains + * when no hard interrupt wakes the thread up. + */ + if (new->thread) + wake_up_process(new->thread); + register_irq_proc(irq, desc); new->dir = NULL; register_handler_proc(irq, new);