diff options
author | Joel Becker <jlbec@evilplan.org> | 2011-03-28 09:44:26 -0700 |
---|---|---|
committer | Joel Becker <jlbec@evilplan.org> | 2011-03-28 09:44:26 -0700 |
commit | 99bdc3880c611c7f2061fbd5372ef81b40217e26 (patch) | |
tree | ef68a53e28e9ee53ce9db3642bab5fa5b3d44866 /kernel/irq/manage.c | |
parent | ed59992e8d91b70053c53d846a76f7e1ac000454 (diff) | |
parent | b4e1b7e88b2c87c358c2a88bec0c76d25accc604 (diff) | |
download | kernel_samsung_aries-99bdc3880c611c7f2061fbd5372ef81b40217e26.zip kernel_samsung_aries-99bdc3880c611c7f2061fbd5372ef81b40217e26.tar.gz kernel_samsung_aries-99bdc3880c611c7f2061fbd5372ef81b40217e26.tar.bz2 |
Merge branch 'mlog_replace_for_39' of git://repo.or.cz/taoma-kernel into ocfs2-merge-window-fix
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 0caa59f..2782bac 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -282,8 +282,17 @@ EXPORT_SYMBOL(disable_irq); void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume) { - if (resume) + if (resume) { + if (!(desc->status & IRQ_SUSPENDED)) { + if (!desc->action) + return; + if (!(desc->action->flags & IRQF_FORCE_RESUME)) + return; + /* Pretend that it got disabled ! */ + desc->depth++; + } desc->status &= ~IRQ_SUSPENDED; + } switch (desc->depth) { case 0: @@ -1100,7 +1109,7 @@ int request_threaded_irq(unsigned int irq, irq_handler_t handler, if (retval) kfree(action); -#ifdef CONFIG_DEBUG_SHIRQ +#ifdef CONFIG_DEBUG_SHIRQ_FIXME if (!retval && (irqflags & IRQF_SHARED)) { /* * It's a shared IRQ -- the driver ought to be prepared for it |